2013-03-03 59 views
0

原子事务我有实施,涉及到一个原子事务的问题:两个文件系统和数据库操作

  1. 像添加,编辑,移动文件系统操作,复制和删除 文件。
  2. Linq操作(实体框架)像添加对象和 保存更改。

这两种类型的操作应该被提交\一起回滚。

我环顾四周寻找解决方案,发现(事务性NTFS & .NET TransactionScope类)是我的最佳选择,现在我的问题是TransactionScope类支持EF linq操作吗?如果你能给我提供简单的例子,我在这里有点失落。

回答

1

是Linq to Sql支持.Net Transactions.SaveChanges适用于隔离级别为ReadCommitted的Transaction。如果您必须在一个事务中应用多个SaveChanges,则可以明确应用事务。 EF SaveChanges首先检查是否已有事务,如果不是,则它继续使用它。它应用自己的事务。如果每个事务只有一个SaveChanges,则不需要应用事务。

+0

因此,当我使用transactionScope启动我的作用域时,EF saveChanges将继续使用它,并且不会应用自己的事务,对吧? – Lisa 2013-03-03 08:47:12

+0

这也适用于AddObject? – Lisa 2013-03-03 08:47:30

+1

是的,当你将应用自己的交易EF将与它一起。 – ethicallogics 2013-03-03 08:50:39