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