posts - 1, comments - 28, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

最新评论

共2页: 1 2 下一页 
Re:Entity Framework中的事务问题 Seen_ 2011-06-09 15:00  
项目中,一般都是把TestEntities但参数传过去的。 所有的业务做完,才SaveChanges()或Commit();
Re:Entity Framework中的事务问题 小白.net 2010-07-15 11:26  
@锦瑟无端五十弦 谢谢 顺便请教下楼主条用存储过程如果返回多个结果集 EF4的复杂类型只能判断出第一个返回的表 这个如何处理 我用的EF4
Re:Entity Framework中的事务问题 锦瑟无端五十弦 2010-07-15 11:22  
@韦恩卑鄙 v-zhewg @waynebaby 有一个问题,在开启TransactionScope之后,如果接下来的代码中没有显式的open connection的代码,而是直接进行数据操作(即使是同一个Context),就会抛出需要开启MSDTC的异常,而如果加了open connection,则运行正常。你知不知这是什么道理?
Re:Entity Framework中的事务问题 锦瑟无端五十弦 2010-07-15 11:19  
@小白.net 你需要下载EF Extension并添加引用,可以google一把。
Re:Entity Framework中的事务问题 小白.net 2010-07-14 23:53  
using (t.Connection.CreateConnectionScope())// EF Extension中的扩展方法,作用是open connection并在dispose里释放它 这个方法我怎么没有
Re:Entity Framework中的事务问题 张磊_larry.zhang 2010-07-14 17:09  
用4.0吧,完全支持T-SQL,反正EF是在服务端的
Re:Entity Framework中的事务问题 Assion Yang 2010-07-14 17:03  
@韦恩卑鄙 v-zhewg @waynebaby 不敢不敢,我也是个人感觉。
Re:Entity Framework中的事务问题 韦恩卑鄙 v-zhewg @waynebaby 2010-07-14 17:01  
@Assion Yang [quote]Assion Yang: @韦恩卑鄙 v-zhewg @waynebaby 人个感觉不敢保证是同一connection[/quote] 我看了下源代码 在EF 4.0里面 一次savechange 一次exec sp 和一次execfunction 都会从连接池里面拿出一个连接来 感谢指出问题 长知识了
Re:Entity Framework中的事务问题 Assion Yang 2010-07-14 16:48  
@韦恩卑鄙 v-zhewg @waynebaby 人个感觉不敢保证是同一connection
Re:Entity Framework中的事务问题 金色海洋(jyk) 2010-07-14 16:44  
自己写,舒心。
Re:Entity Framework中的事务问题 韦恩卑鄙 v-zhewg @waynebaby 2010-07-14 16:42  
[quote]温景良(Jason): [quote]韦恩卑鄙 v-zhewg @waynebaby: 不需要 如果是同一个sqlconnection的话 自动调用sql 连接层的trans 不需要任何外部支持 如果是跨数据库的或者跨连接的,甚至跨服务的 TS会自动调用msdtc 你只要保证你的msdtc 服务开着 一般就可以了 万一中的万一 ,出错了可以再找资料 我帮你找呵呵[/quote] 有个问题啊,如果在里面执行多条语句,数据层的连接是采用dispose(),这样会判断是同一个连接吗[/quote] 只要context 不dispose 连接就还是同一个。 补充 看来是错的 只要是一次execute 就是同一个。。。
Re:Entity Framework中的事务问题 ejiyuan 2010-07-14 16:26  
EF不提倡实用Cmmand方式调用,如果非要用#2是正解
Re:Entity Framework中的事务问题 Assion Yang 2010-07-14 16:25  
@温景良(Jason) 用分布式事务的好处就是可以独立于数据层,在业务层实现组装事务。比如: 数据层方法 SaveOrder(); --保存订单 SaveOrderItem(); --保存订单明细 UpdateCustomer(); --更新用户信息 UpdateInventory(); --更新库存信息 SaveNetPay(); --保存支付信息 这些都是数据层基于ORM的独立映射方法 业务层 创建订单方法 CreateSo() { 事务 { SaveOrder(); --保存订单 SaveOrderItem(); --保存订单明细 UpdateCustomer(); --更新用户信息 UpdateInventory(); --更新库存信息 SaveNetPay(); --保存支付信息 } } 这样可以以业务核心随意装配持久,如果上例不采用分布式事务,每个组装的业务都要实现相应的数据层聚合,想一想也比较可怕了。尤其以ORM为持久层的都是相对独立的数据映射。
Re:Entity Framework中的事务问题 温景良(Jason) 2010-07-14 16:02  
[quote]韦恩卑鄙 v-zhewg @waynebaby: @温景良(Jason) 这个没测试过呢 似乎是可以滴[/quote] 这个问题我比较关心,以前为了在一个连接里执行事务,都只能写在一起,不然连接被dispose()掉了,就没有了.如果close()应该就没有问题
Re:Entity Framework中的事务问题 韦恩卑鄙 v-zhewg @waynebaby 2010-07-14 15:59  
@温景良(Jason) 这个没测试过呢 似乎是可以滴
Re:Entity Framework中的事务问题 温景良(Jason) 2010-07-14 15:59  
[quote]韦恩卑鄙 v-zhewg @waynebaby: 不需要 如果是同一个sqlconnection的话 自动调用sql 连接层的trans 不需要任何外部支持 如果是跨数据库的或者跨连接的,甚至跨服务的 TS会自动调用msdtc 你只要保证你的msdtc 服务开着 一般就可以了 万一中的万一 ,出错了可以再找资料 我帮你找呵呵[/quote] 有个问题啊,如果在里面执行多条语句,数据层的连接是采用dispose(),这样会判断是同一个连接吗
Re:Entity Framework中的事务问题 陈梓瀚(vczh) 2010-07-14 15:59  
@锦瑟无端五十弦 试试看就知道了
Re:Entity Framework中的事务问题 温景良(Jason) 2010-07-14 15:56  
[quote]Assion Yang: @温景良(Jason) 小良良,如果达到一定条件就自动升级成为分布式事务了,MSDTC还是需要相应配置一下的。都是做大系统的,配一下有何防。又不是虚拟主机。[/quote] 有个问题啊,他启动的事务在sql查询分析器可以看到吗
Re:Entity Framework中的事务问题 韦恩卑鄙 v-zhewg @waynebaby 2010-07-14 15:56  
@Assion Yang 其实我都使用默认配置呵呵
Re:Entity Framework中的事务问题 韦恩卑鄙 v-zhewg @waynebaby 2010-07-14 15:55  
@锦瑟无端五十弦 你只要保证哟你的歌是同一条connection 或者说用的是同一个 EF context 就不会自动升级为 DT 也不会产生额外的开销
共2页: 1 2 下一页