我们有很多使用我们自己的数据对象的遗留代码。我们正在慢慢尝试引入EF。我们需要能够将EF加入到我们已经使用System.Data.SqlClient.SQLTransaction开始的事务中。 EF当然使用System.Transaction.Transaction。这可能吗?将实体框架列入SQLTransaction?
使事情更清楚。我们的代码遍布整个地方,执行以下操作:
public sub DeleteEntity()
Dim InTransaction = ado.InTransaction
if not InTransaction then ado.BeginTran
...
<--want to use EF Here
...
if not InTransaction then ado.CommitTran
end sub
DeleteEntity例程并不简单。它有很多逻辑。我想在代码中间使用EF来代替它,所以我需要将它列入活动事务中。由于它的设计方式,我不能仅仅使用事务范围。在很多地方都会调用DeleteEntity,我不想访问每个调用例程的地方。它更需要处理System.Transaction.Transaction和SqlTransaction,然后处理EF本身。
更新:我想:
context.connection.EnlistTransaction(Transaction.Current)
这是行不通的。
ObjectQuery不起作用。 DeleteEntity只是一个例子。还有其他功能,我们想用EF来做一小块。在这个例子中。删除实体是400行代码。我只是不是从数据库中简单地删除一个实体。 – coding4fun 2011-12-23 17:52:40