エンティティの行をlinqで取得して変更しています。しかしSaveChanges()
はなんらかの理由で更新されません。Entity Frameworkコア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();
Iは、IsModified = true
としてUpdate
方法アップ、各プロパティを設定し、Modified
にEntityState
を設定しようとしています。
この問題については、本当に助けてください。
"しかし、' SaveChanges() 'は何らかの理由でそれを更新しません。それは何をするためのものか?同じContextでデータベースから取得したオブジェクトのプロパティを変更する場合は、 'EntityState.Modified'を設定する必要はありません。 – krillgar