我必須在單個事務中將2條記錄插入到一個數據庫中,並將大約40條記錄插入到另一個數據庫中。我正在使用TransactionScope並獲取此錯誤。用於Oracle的Dotconnect - EF - 全局事務中的太多本地會話
我沒看過這篇文章,但這並沒有幫助,因爲有2分貝的參與,它是一個分佈式交易。
http://www.devart.com/blogs/dotconnect/index.php/entity-framework-tips-and-tricks-part-3.html
我的代碼是有點像下面。
using (var ts = new TransactionScope()) {
using (var context = new MyContext()) {
for (int i = 0; i < 40; i++)
{
var order = context.Orders.Where(a => a.name = 'xxx').Single();
context.ArchiveOrders.Add(order);
}
}
}
即使我創造了「語境」我的外循環(不像在上面的鏈接的例子),代碼仍然失敗,出現「太多的本地會話」的錯誤。
此外,我注意到,每個查詢「context.Orders.Where(...)」被列爲新的交易。我正在使用Entity Framework而不是Linq to Sql。所以上面的代碼在20次迭代中斷裂。
除了讓他們獨立進行2個本地事務並以某種方式手動執行事務處理之外,我現在有哪些選擇。