实体框架DbUpdateConcurrencyException

时间:2017-11-13 11:10:34

标签: c# asp.net entity-framework repository-pattern savechanges

on unitOfWork.Complete();我收到此错误

  

System.Data.Entity.Infrastructure.DbUpdateConcurrencyException :   '存储更新,插入或删除语句影响了意外   行数(0)。自那以后,实体可能已被修改或删除   实体已加载

我看了this,但没有结果。另外this question对我帮助不大。 重点是什么?错误在哪里?

程序

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(); 
    [...]
}

的UnitOfWork

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();
        }
    }

1 个答案:

答案 0 :(得分:1)

现在我找到了一个“解决方案”:我想写的表有一个主键,有两个属性;现在只有一个具有一个属性的主键我没有错误。

为什么?