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,因为你不需要代码优先的方法。
- 在VS 2010 .net 4.0中使用entity framework时出现'datetime2'错误
- 如何刷新DbContext
- LINQ to Entities不能识别“Double Parse(System.String)”方法,并且此方法不能被转换为存储expression式
- 使用MVC和entity framework实施审计日志/更改历史logging
- Azure上找不到“Microsoft.SqlServer.Types”版本10或更高版本
- 如何在EF Code First中对我的表格进行单数化?
- 像entity framework中的运算符一样?
- ADO.NETentity framework与NHibernate
- 不信任的entity framework表决 – 与.NET 4相关?