我正在使用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

我真的很想在这个问题上有所帮助。

最佳答案

我看到了很多不必要的代码。尝试这个...

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

关于c# - Entity Framework 核心SaveChanges不会更新记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40932810/

10-13 08:31