C# 实体框架DbUpdateConcurrencyException
在C# 实体框架DbUpdateConcurrencyException,c#,asp.net,entity-framework,repository-pattern,savechanges,C#,Asp.net,Entity Framework,Repository Pattern,Savechanges,在unitOfWork.Complete()上我得到这个错误 System.Data.Entity.Infrastructure.DbUpdateConcurrencyException: '存储更新、插入或删除语句影响了意外的 行数(0)。实体可能已被修改或删除,因为 实体已加载 我看了一眼,但没有结果。也帮不了我很多。 重点是什么?错误在哪里 节目 using (var unitOfWork = new UnitOfWork(new var ultimaDateTimeElabor
unitOfWork.Complete()上代码>我得到这个错误
System.Data.Entity.Infrastructure.DbUpdateConcurrencyException:
'存储更新、插入或删除语句影响了意外的
行数(0)。实体可能已被修改或删除,因为
实体已加载
我看了一眼,但没有结果。也帮不了我很多。
重点是什么?错误在哪里
节目
using (var unitOfWork = new UnitOfWork(new
var ultimaDateTimeElaborata =
unitOfWork.LogRegistrazioneLavorazioneMacchinaRepository.
GetUltimaRegistrazioneLineaRilevata(l.IdLinea);
[...]
unitOfWork.LogRegistrazioneLavorazioneMacchinaRepository.Add(
new LogRegistrazioneLavorazioneMacchina()
{
IdMacchina = "MB1_1",
DataRegistrazione = DateTime.Now,
IdLinea = 1,
MetriLinLato= 1,
TempoLavorazioneSecondi= 1,
IdLavorazioneLinea ="LavorazioneProva",
IdLavorazioneMacchina = "LMB_1_PP",
StepLavorazioneLinea = 3,
});
unitOfWork.Complete();
// HERE I GET THE ERROR!!!
// LogRegistrazioneLavorazioneMacchinaRepository.unitOfWork
//contains the right data I want to save
unitOfWork.Complete();
[...]
}
工作单元
public class UnitOfWork : IUnitOfWork
{
private readonly J2MSEntities _context;
public ILogRegistrazioneLavorazioneMacchinaRepository
LogRegistrazioneLavorazioneMacchinaRepository { get; private set; }
public UnitOfWork(J2MSEntities context)
{
_context = context;
LogRegistrazioneLavorazioneMacchinaRepository(_context);
}
public int Complete()
{
return _context.SaveChanges();
}
public void Dispose()
{
_context.Dispose();
}
}
现在我找到了一个“解决方案”:我想写的表有一个主键和两个属性;现在只有一个主键和一个属性,我没有错误
为什么?愚蠢的问题,调用程序部分的任何请求是否也在其他地方调用?或者是否有任何东西生成另一个UnitOfWork
类?据我所知,如果有两个DbContext
试图更新同一项,则可能会发生这种情况。。。后面的DbContext
将失败并出现并发错误。@BagusTesa是的,但仅用于读取目的。顺便说一下,我更新了“程序”代码。你是说主键列上有聚集索引?因为每个表只允许有一个主键,我想写一个主键,有两个属性——这一个,有点奇怪。你定好了吗?无论如何,正如我之前所说的。。你应该遇到。。首先尝试调试您的程序。。一步一步地。