Требуется ли для обновления обновление EntityState.Modified? - программирование
Подтвердить что ты не робот

Требуется ли для обновления обновление EntityState.Modified?

Я видел много людей при обновлении записи:

...
ms.Status = status;
db.Entry(ms).State = EntityState.Modified;
db.SaveChanges();

Требуется ли эта строка? Я смог сделать обновление без него.

db.Entry(ms).State = EntityState.Modified;

Мне было интересно, что этот оператор фактически используется, если контекст уже знает, что он должен обновить эту запись, если вы не указали это явно, то зачем беспокоиться об этом явно?

4b9b3361

Ответ 1

Требуется, если ваши изменения в объекте были выполнены, когда объект не отслеживался контекстом EF (объект был отсоединен). Если вы загружаете объект из контекста, измените его и сохраните в том же контексте, который вам не нужно использовать, потому что EF будет отслеживать изменения и автоматически устанавливать состояние.

Ответ 2

Из моего понимания это нужно использовать только в том случае, если сущность была привязана к контексту. В противном случае нет.