【发布时间】:2011-07-09 10:42:59
【问题描述】:
随着 EF 4.1 的推出和 CTP5 的推出几个月,我决定尝试新功能。如我所见,有多个可用的生成项(DbContext 和三个不同的ObjectContext's)。我还注意到它们不可互换——我第一次在我的一个应用程序中使用 POCO ObjectContext,今天切换到 DbContext,我的整个存储库都坏了。它基于LoadProperty() 方法、DeleteObject() 和AddObject() 方法,而在DbContext 生成中使用的DbSet 类中都缺少这些方法。
我知道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())。 - 我们可能不需要代码优先 功能(但你永远不知道)。
【问题讨论】:
-
理想情况下,答案将为每个可用选项提供优缺点
标签: entity-framework-4 asp.net-mvc-3 poco entity-framework-ctp5 ef-code-first