獲取「不允許新的事務,因爲會話中有其他線程正在運行」。由於會話中還有其他線程正在運行,所以不允許新的事務
它與foreach循環或任何人通常與此消息相關的問題無關。
我在整個請求中使用帶有repositoy模式和公共上下文的EF4。發生某些事情時,無法確定究竟是什麼,只要我嘗試通過上下文保存與請求相關的更改,我就會收到此消息,並且只有在我回收應用程序池後纔會消失。
我關閉了連接嗎?我怎麼知道?我是否爲每個請求使用新的上下文?是。
發生了什麼事?有沒有解決辦法?
編輯:(上下文工廠)
private static Dictionary<string, CoinEntities> _instances;
public static CoinEntities DefaultInstance
{
get
{
if (HttpContext.Current == null)
{ //todo: mock instead. testing.
if (!Instances.ContainsKey("_TEST"))
Instances["_TEST"] = new CoinEntities();
return Instances["_TEST"];
}
if (!Instances.ContainsKey("_DEFAULT"))
Instances["_DEFAULT"] = new CoinEntities();
return Instances["_DEFAULT"];
}
}
杜佩到http://stackoverflow.com/questions/2113498/sqlexception- from-entity-framework-new-transaction-is-not-allowed-because -other – Korayem 2012-09-20 12:50:28