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是的,但仅用于读取目的。顺便说一下,我更新了“程序”代码。你是说主键列上有聚集索引?因为每个表只允许有一个主键,我想写一个主键,有两个属性——这一个,有点奇怪。你定好了吗?无论如何,正如我之前所说的。。你应该遇到。。首先尝试调试您的程序。。一步一步地。