Entity Framework - В чем преимущество автоматического обнаружения изменений? - PullRequest
3 голосов
/ 11 августа 2011

При работе с производными типами EntityObject или прокси-объектами отслеживания изменений Entity Framework автоматически отслеживает изменения, внесенные в объекты по мере их возникновения

Какое преимущество это дает мне?Без этого мои изменения все еще обнаруживаются, когда я вызываю SaveChanges и мой POCO сохраняется правильно.

Кроме того, почему многие онлайн-учебники для EF явно меняют состояние на измененное после того, как они вносят изменения, для чего?это служит?

context.Entry(model).State = EntityState.Modified;

1 Ответ

1 голос
/ 11 августа 2011

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


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

context.Entry(model).State = EntityState.Modified;

Это необходимо сделать в случае, если вы создали экземпляр своей сущности самостоятельно, например, -

var customer = new Customer();

Это не добавит вашего клиента в DbContext и, следовательно, он не будет отслеживаться. Поэтому вам нужно использовать context.Entry (customer) для этого.

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