Окружение
ASP.NET MVC 4 приложение, EntityFramework 6Проблема
Не получается перезагрузить обновленные свойства объекта из базы данных и навигационные свойства
Сценарий использования
Обрабатываю в контроллере Post-запрос на создание объекта. Объект передается параметром в Экшене.как обычно я делаю
...
проверки
сохранение объекта
дополнительные действия после сохранения
...
С клиента новый объект приходит "чистым"/ т.е. без навигационных свойств.
Его я и добавляю в контекст и сохраняю.
После сохранения я хочу провести дополнительную обработку в которой мне нужны навигационные свойства, но проблема в том, что EF кеширует объект и повторная загрузка не приводит к обновлению навигационных свойств. Они остаются пустыми.
Решение
Перед тем как считать обновленный объект его нужно отсоединить от контекста.У меня получилось сделать это так:
public void Detach(T entity)
{
((IObjectContextAdapter)_db).ObjectContext.Detach(entity);
}
Решение нашел здесь
Entity Framework Code First - No Detach() method on DbContext
http://stackoverflow.com/questions/4168073/entity-framework-code-first-no-detach-method-on-dbcontext
Ссылки по теме
Entity Framework Code First - No Detach() method on DbContext
http://stackoverflow.com/questions/4168073/entity-framework-code-first-no-detach-method-on-dbcontext
Reload an entity and all Navigation Property Association- DbSet Entity Framework
http://stackoverflow.com/questions/9081244/reload-an-entity-and-all-navigation-property-association-dbset-entity-framework
How to update an entity's navigation properties in Entity Framework
http://stackoverflow.com/questions/10542209/how-to-update-an-entitys-navigation-properties-in-entity-framework
Entity Framework POCO - Refresh a navigation property
http://stackoverflow.com/questions/3839166/entity-framework-poco-refresh-a-navigation-property
Комментариев нет:
Отправить комментарий