Требуется ли для обновления обновление EntityState.Modified?
Я видел много людей при обновлении записи:
...
ms.Status = status;
db.Entry(ms).State = EntityState.Modified;
db.SaveChanges();
Требуется ли эта строка? Я смог сделать обновление без него.
db.Entry(ms).State = EntityState.Modified;
Мне было интересно, что этот оператор фактически используется, если контекст уже знает, что он должен обновить эту запись, если вы не указали это явно, то зачем беспокоиться об этом явно?
Ответы
Ответ 1
Требуется, если ваши изменения в объекте были выполнены, когда объект не отслеживался контекстом EF (объект был отсоединен). Если вы загружаете объект из контекста, измените его и сохраните в том же контексте, который вам не нужно использовать, потому что EF будет отслеживать изменения и автоматически устанавливать состояние.
Ответ 2
Из моего понимания это нужно использовать только в том случае, если сущность была привязана к контексту. В противном случае нет.