实体框架核心SaveChanges不更新记录

时间:2016-12-02 12:58:23

标签: c# entity-framework linq

我正在使用linq获取一行实体并修改它。但是SaveChanges()由于某种原因没有更新它。

foreach(Kontraktdto k in Kontrakt)
{
    var kontrakt = context.LkKontrakter.FirstOrDefault(x => x.KontraktId == k.KontraktId);

    if (kontrakt == null) 
        continue;

    var entry = context.Entry(kontrakt);
    entry.State = EntityState.Modified;

    kontrakt.OpsjonBetingelse = k.OpsjonBetingelse;
    kontrakt.OpsjonVarslingsdato = k.OpsjonVarslingdato;
    kontrakt.Opsjon = (double)k.Opsjon;

    entry.Property(e => e.OpsjonVarslingsdato).IsModified = true;
    entry.Property(e => e.OpsjonBetingelse).IsModified = true;
    entry.Property(e => e.Opsjon).IsModified = true;

    context.LkKontrakter.Update(kontrakt);
}

context.SaveChanges();

我尝试设置Update方法,将每个属性设置为IsModified = true,并将EntityState设置为Modified

我真的很想帮助解决这个问题。

1 个答案:

答案 0 :(得分:2)

我看到很多代码都没有必要。试试这个......

foreach(Kontraktdto k in Kontrakt)
{
    var kontrakt = context.LkKontrakter.FirstOrDefault(x => x.KontraktId == k.KontraktId);

    if (kontrakt == null) 
    {
        continue;
    }

    kontrakt.OpsjonBetingelse = k.OpsjonBetingelse;
    kontrakt.OpsjonVarslingsdato = k.OpsjonVarslingdato;
    kontrakt.Opsjon = (double)k.Opsjon;
}

context.SaveChanges();