首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

WCF当主从表在不同DomainService時候保存主从表时候能不能像类似的事务机制去保存?解决方案

2012-03-29 
WCF当主从表在不同DomainService時候保存主从表时候能不能像类似的事务机制去保存?简单情况:有表:Repair 、

WCF当主从表在不同DomainService時候保存主从表时候能不能像类似的事务机制去保存?
简单情况:有表:Repair 、 RepairDetail、Vehicle

我知道如果这个三个都建立在同一个DomainService的话:有几个好处:
1、获取信息可以直接获取主表Repair的时候包括上从表RepairDetail
2、主从表只由主表提交Submit()就可以了,主表的实体中已经包含了子表集合;

现在要求这三个表分别建立不同的DomainService : dmsRepair 、 dmsRepairDetail 、 dmsVehicle
问题:如果这样建立DomainService 在保存数据 要分开保存 dmsRepair 、 dmsRepairDetail 、 dmsVehicle
会出现的情况:
如果在保存dmsRepair 、 dmsRepairDetail成功之后,再保存dmsVehicle就失败了,可不可以把之前保存dmsRepair 、 dmsRepairDetail的数据CallBack 回滚。(为了在存储时保持正确性(要么都存储,要么都不存储))

我看到网上有人在说过一种解决办法:还不是很理解是怎么做的。各位大侠帮帮看看
把所有的DomainService放在同一个事务范围中来。

try  
{
  using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope())
  {  
  //... 业务代码

  dmsRepair.SubmitChanges();
  dmsRepairDetail .SubmitChanges();  
  dmsVehicle.SubmitChanges();  
  ts.Complete();
  }  
  catch (System.Data.UpdateException ex)
  {  
  //this.HandleException(ref msg, ex.InnerException);
  }
  catch (System.Data.Common.DbException ex)
  {
  //this.HandleException(ref msg, ex);
  }  
  catch (System.Exception ex)
  {
  //this.HandleException(ref msg, ex);
  }  
  finally
  {  
  //this.CloseConnection();
}
我看了这个但是我不知道这段代码该放在那里,还有是怎么处理。
各位帮帮忙。谢谢

[解决办法]
System.Transactions.TransactionScope也支持DomainService吗?还真不知道。


[解决办法]
楼主的主从表是怎样做的啊? 我这几天都在弄这个,头大死了。能否介绍点经验。
网上的教程都是怎么展现主从表,就没介绍怎么创建的。
而且我不想 主表,从表都用grid显示,那样挺傻的,我希望是主表内容用几个字段显示,字表用grid,
左边加一个列表形式来显示主表的记录,可以用作导航,当切换左边列表的主记录时候,明细行,及上面的textbox自动切换,就像很多原来的系统里 订单界面一样。


[解决办法]
ria service有很多优点,但是也有不少局限性,如果非要用事务机制,可以使用存储过程,或者直接用wcf+linq to Sql(或ef)来实现,不建议使用TransactionScope

热点排行