我得到在我的代码中的错误,说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