【问题标题】:Entity Framework DbUpdateConcurrencyException实体框架 DbUpdateConcurrencyException
【发布时间】:2017-11-13 11:10:34
【问题描述】:

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

工作单位

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

【问题讨论】:

  • 愚蠢的问题,调用 Program 部分的任何请求是否也在其他地方被调用?或者有什么会产生另一个UnitOfWork 类?据我所知,如果您有两个 DbContext 尝试更新同一个项目,则可能会发生这种情况......后来的 DbContext 将因并发错误而失败。
  • @BagusTesa 是的,但仅用于阅读目的。顺便说一句,我更新了“程序”代码。

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


【解决方案1】:

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

为什么?

【讨论】:

猜你喜欢
  • 2022-11-21
  • 1970-01-01
  • 2011-06-28
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
  • 2017-07-07
  • 2020-04-11
  • 1970-01-01
相关资源
最近更新 更多