Entity Framework — как обновить только одну сущность?

Есть у меня есть некая модель из Entity Framework. Необходимо как-то обновить только 1 сущность (то есть 1 таблицу заполнить данными из базы). Например, изменили что-то в базе вне программы и только в одной таблице, как мне обновить только 1 таблицу?
Я же делаю пока просто пересозданием всего контента:

_dataContext = new MyMagnEntities();

Потому как другого способа пока не нашел. Как сделать правильно?
  • Вопрос задан
  • 2823 просмотра
Пригласить эксперта
Ответы на вопрос 2
chydaya
@chydaya
Необходимо как-то обновить только 1 сущность (то есть 1 таблицу заполнить данными из базы). Например, изменили что-то в базе вне программы и только в одной таблице, как мне обновить только 1 таблицу

не знаю как работает Entity, но по опыту работы в более адекватных ORM, если что-то изменили в базе, то при обращении к сущности, которая описывает таблицу, данные будут актуальные и без пересоздания ..
Ответ написан
@AlexP11223
Можно что-то типа такого:

ObjectContext objectContext = ((IObjectContextAdapter)_dbContext).ObjectContext;

objectContext.Refresh(RefreshMode.StoreWins, _dbContext.SomeTable);


но не факт, что это лучше пересоздания контекста. Вроде это не во всех случаях работает, например по-моему не удалит удаленную извне запись.

Если вы данные из той таблицы загружаете только для чтения, без редактирования, то AsNoTracking() используйте
blog.staticvoid.co.nz/2012/4/2/entity_framework_an...
blogs.msdn.com/b/adonet/archive/2011/02/05/using-d...
тогда таблица просто будет загружаться из БД каждый раз.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы