最新版本的Entity framework vs NHibernate

时间:2012-03-28 06:14:32

标签: nhibernate entity-framework-4 entity-framework-4.1

考虑到最新版本的Entity框架与NHibernate相比,我是否应该使用NHibernate而不是最新版本的Entity框架?

当前版本的Entity框架是否包含Nhibernate的功能?

感谢

1 个答案:

答案 0 :(得分:7)

有很多关于NH和EF之间差异的帖子 - 如果你想得到完整答案,请自己研究一下。

简短版本:

EF 4.1只带来了使用EF 4.0的新方法 - 它意味着新的简化API(DbContext)和代码映射。这两个新功能都比原始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团队当前为下一版本请求的功能。