ADO.NET DbContext生成器与ADO.NET Poco实体生成器(ObjectContext)

我即将开始实施一个以DDD方法构build的项目的数据访问基础设施( 这是我第一次尝试使用DDD,所以要温和;-) )。

我将使用entity framework。 到目前为止,我正在研究Julie Lerman在她的着名的编程entity framework ( Programming Entity Framework )中教授的方法,其中使用了ADO.NET POCO实体生成器 ,并对T4模板和一些更多的自定义代码进行了一些更改。
今天,我开始阅读关于EF4.1和ADO.NET DbContext生成器的文章 ,使用数据库优先的方法,我试图决定我应该去哪一个。

DbContext和EF4.1的DDD方法似乎是比POCO实体更好,更干净的方式,但是恐怕在不久的将来可能会导致一些问题,因为EF4.1还在RC中。

从ADO.NET团队博客 ,我知道EF4.1 包括:

  • 支持Enum
  • 空间数据types支持
  • 代码优先的存储过程支持
  • 在Code First中提供迁移支持
  • Code First中的可定制约定

根据我的理解,因为我将使用“ 数据库优先”,所以没有包含更less的function。

最后,我的问题是:
我可以使用EF4.1 DbContext生成器replacePOCO实体生成器吗?

清洁创造POCO实体的angular度来看,两个发电机之间没有区别。 两个生成器生成相同的实体,但是,ADO.NET POCO实体生成器基于ObjectContext的API,而ADO.NET DbContext生成器基于DbContext的API。

DbContext的API有一些非常漂亮的新function(本地,导航属性上的查询等),而API在某种程度上被简化了,但同时它看起来像在ObjectContext API中使用的一些function在DbContext API中缺less(或者至less还没有足够的探索)。

EF 4.1 RC是实时版本。 这意味着你可以用它构build一个真正的应用程序,因为API不会在RTW中改变(只有bug会被修复)。 此外RTW应该在下个月,所以我认为在最终版本出货之前,您还没有准备好您的应用程序。

ObjectContext API或DbContext API? ObjectContext API更好地被文档和博客文章所覆盖。 你可以find很多关于它的例子。 其局限性也是众所周知的。 DbContext API是新版本。 一个非常有前途的版本,主要是因为代码优先的方法。 博客文章的数量仍然非常有限,没有任何一本书,API也没有足够的certificate。 所以这取决于你是否准备好与新的API战斗? 如果没有,那么ObjectContext API仍然是一个不错的select,因为你不需要代码优先的方法。