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实体生成器吗?

One Solution collect form web for “ADO.NET DbContext生成器与ADO.NET Poco实体生成器(ObjectContext)”

清洁创造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,因为你不需要代码优先的方法。

  • 代码优先与模型/数据库优先
  • 如何在Entity Framework Code First中分离对象?
  • 更好的方式来查询一个页面的数据,并获得总数在entity framework4.1?
  • 从DbValidationException中获取确切的错误types
  • 保存不会为其关系公开外键属性的实体时发生错误
  • 你可以使用Entity Framework 4.1 Code第一种方法创buildsql视图/存储过程
  • StringLength与MaxLength属性entity frameworkEF Code First的ASP.NET MVC
  • 为什么在EF 4.1中插入实体与ObjectContext相比如此之慢?
  • EF 4.1代码优先:如何使用包含和/或select方法命令导航属性?
  • 如何从代码检索数据注释? (编程)
  • EF模式首先或代码优先的方法?