Как мне отсоединить объекты в Entity Framework Code First? - PullRequest
128 голосов
/ 08 апреля 2011

На DbContext нет Detach(object entity).

У меня есть возможность сначала отсоединить объекты в коде EF?

Ответы [ 2 ]

214 голосов
/ 08 апреля 2011

Это опция:

dbContext.Entry(entity).State = EntityState.Detached;
135 голосов
/ 09 апреля 2011

Если вы хотите отсоединить существующий объект, следуйте советам @ Slauma. Если вы хотите загружать объекты без отслеживания изменений, используйте:

var data = context.MyEntities.AsNoTracking().Where(...).ToList();

Как уже упоминалось в комментарии, это не будет полностью отделять сущности. Они все еще прикреплены, и ленивая загрузка работает, но сущности не отслеживаются. Это следует использовать, например, если вы хотите загрузить сущность только для чтения данных и не планируете их изменять.

...