У меня есть рабочий Update
метод, который просто изменив значение свойства и вызывает SaveChanges()
от контекста дб:Entity Framework не меняется EnityState на обновления
public void Update(int id, string name)
{
var entity = context.Entities.Single(x => x.Id == id);
entity.Name = name;
context.SaveChanges();
}
таким образом изменения действительно получить применяется, однако EnityState
остается «Без изменений». Любые мысли о том, почему? Я пытаюсь избежать необходимости говорить EF, что происходит явно, например. используя context.Entry(entity).State = EntityState.Modified;
Проблема заключается в том, я использую состояние в переопределен метод SaveChanges:
public override int SaveChanges()
{
var context = ((IObjectContextAdapter)this).ObjectContext;
var objectStateEntries =
context.ObjectStateManager
.GetObjectStateEntries(EntityState.Added | EntityState.Modified);
...
return base.SaveChanges();
}
..when отладки, я могу видеть, что состояние моего лица является Unchanged
.
Перед вызовом SaveChanges состояние IST ОБНОВЛЕНО После вызова SaveChanges, состояние ИЗМЕНЕНИЙ –
После этой строки «entity.Name = имя;» состояние должно быть изменено, но после этого «context.SaveChanges();» он должен быть снова изменен. – jannagy02
@CyrilIselin это не так. см. обновление. – Tsar