我们最近刚刚经历了在实体框架和 NHibernate 之间做出决定的过程。尽管我最初的倾向是倾向于 NHibernate,但考虑到 Microsoft 在过去几年中实际坚持使用某项技术的记录并不那么出色(例如:Linq To SQL,在版本 1 中就已失效,或者作为最近的示例) MS 是否决定放弃 ASP.NET Ajax 库客户端模板,请检查this http://stephenwalther.com/blog/archive/2010/03/16/microsoft-jquery-and-templating.aspx),我们仍然决定使用实体框架。
我们选择它的原因如下:
我们是一家仅限 Microsoft 的商店,因此它与我们现有的工具集很好地集成。
我们喜欢它在 Visual Studio 2010 中具有内置建模功能。
我们喜欢能够将数据库模式逆向工程为实体数据模型的功能(这真的很酷)。
我们喜欢这样一个事实:我们需要的一切几乎都是开箱即用的,与 NHibernate 不同,我们必须使用不同的工具来进行可视化建模,映射文件有时处理起来很痛苦),而且它没有与 Visual Studio 集成得很好。
使用实体框架是否是正确的选择还有待观察。微软总有可能推出另一个“Linq To SQL”并说:“嘿,我们要抛弃实体框架,对此感到抱歉,你应该选择 NHibernate”。但我们决定,既然 VS 2010 现在已经发布了 2.0,那么它至少有可能会存在几年。