Поскольку EF 4.1 находится на подходе, а CTP5 доступен уже несколько месяцев, я решил опробовать новую функциональность. Как я вижу, доступно несколько элементов генерации (DbContext
и три разных ObjectContext's
). Я также заметил, что они не являются взаимозаменяемыми — сначала я использовал POCO ObjectContext в одном из своих приложений, а сегодня переключился на DbContext, и весь мой репозиторий сломался. Он был основан на методах LoadProperty()
, методах DeleteObject()
и AddObject()
, и все они отсутствуют в классе DbSet
, который используется в поколении DbContext
.
Я знаю, что здесь есть отличная серия блогов http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-1.-introduction-and-model.aspx представляет новую функциональность, но никогда не говорит, когда что выбирать.
Мои требования:
- Приложение ASP.NET MVC, поэтому ленивая загрузка в основном не будет работать, потому что при рендеринге страницы будет сказано, что контекст уже удален (поэтому мне нужна простая поддержка для явной загрузки - в EF4 я сделал это через
Include()
, используя контекст POCO I сделал это черезLoadProperty()
и теперь вDbContext
я думаю, что буду использовать строго типизированныйInclude()
). - Нам, вероятно, не понадобятся функции, ориентированные на код (но кто знает).