С 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, который я сделал
это через LoadProperty()
и сейчас
в DbContext
я верю, что буду использовать
строго типизированный Include()
).
- Нам, вероятно, не понадобится сначала код
особенности (но вы никогда не знаете).