我得到一行与linq实体并修改它。但由于某种原因,SaveChanges()
不会更新它。实体框架核心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
。
我真的很想在这个问题上得到一些帮助。
“但是'SaveChanges()'不会因为某些原因更新它。”它有什么作用?如果您使用相同的上下文从数据库中提取对象的属性,则不必设置“EntityState.Modified”。 – krillgar