Требуется ли EntityState.Modified для обновления? - PullRequest
16 голосов
/ 15 марта 2012

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

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

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

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

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

Ответы [ 2 ]

31 голосов
/ 15 марта 2012

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

1 голос
/ 15 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...