2012-03-28 86 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團隊目前針對下一個版本請求哪些功能。