2012-03-28 88 views
0

考虑到NHibernate的最新版本的实体框架,是否有一个原因,我应该使用NHibernate而不是最新版本的实体框架?实体框架与NHibernate的最新版本

Nhibernate的功能是否不包含当前版本的实体框架?

感谢

回答

7

有吨左右NH和EF之间的差异职位 - 如果你想获得完整的答案做一些自己的研究。

短版:

EF 4.1只带来使用EF 4.0新的方式 - 这意味着所谓的(的DbContext)新简化的API和代码映射。这两项新功能都比原来的EF 4.0更有限。

EF 4.3为增量数据模型开发带来了代码优先的迁移。

EF 4.5 Beta/EF 5.0 Beta支持枚举,空间类型,表值函数,自动编译查询+性能和API改进。

有很多的NH的特征,其仍不可能在EF

  • 更多的可能性,复杂的映射
  • 自定义类型映射
  • 批处理命令执行
  • 将来的查询
  • 第二级高速缓存
  • 可扩展性和大量随时可用的扩展
  • 很多挂钩的,你可以用自己取代NH的默认实现或添加新的逻辑

EF有更好的LINQ的支持,这是从MS - 对很多公司来说是非常重要的决策点。您可以检查data user voice以查看ADO.NET团队目前针对下一个版本请求哪些功能。