我得到在我的代碼中的錯誤,說EntityException未處理
同時啓動提供商連接上一個交易發生錯誤。詳情請參閱
內部異常是內部異常:
新的事物是不允許的,因爲有在會話中運行其他線程。
我的代碼:
using (var db = new ProductionContext())
{
var objct = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)db).ObjectContext;
objct.ExecuteStoreCommand("TRUNCATE TABLE [MU By Machine]");
db.SaveChanges();
var query =
db.MU_Reports
.GroupBy(x => new { x.Date, x.Machine_Number, x.Shift })
.Select(x => new
{
Date = x.Key.Date,
Shift = x.Key.Shift,
MachineNum = x.Key.Machine_Number,
MU = x.Sum(i => i.MU * 100)
});
foreach (var item in query)
{
var y = new MU_By_Machine();
y.Date = item.Date;
y.Shift = item.Shift;
y.Machine_Number = item.MachineNum;
y.MU = item.MU;
db.MU_By_Machines.Add(y);
db.SaveChanges();
}
它發生在我的代碼db.SaveChanges
部分,當我將其移出的for循環的代碼工作,但只保存在我的表一行。如果需要更多信息,請告訴我。我對c#仍然陌生。
「請參閱內部異常的詳細信息」 - 「InnerException」說什麼? 'ex.ToString()'是一個方便的方式來顯示關於異常的大量細節。 –
@DStanley它說因爲會話中還有其他線程正在運行,所以不允許新的事務 – JCM
[Entity Framework中的SqlException - 因爲會話中還有其他線程正在運行而不允許新的事務](http:// stackoverflow .com/questions/2113498/sqlexception-from-entity-framework-new-transaction-is-not-allowed-because-ther) – trailmax