我們有很多使用我們自己的數據對象的遺留代碼。我們正在慢慢嘗試引入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