我刚读到这个article关于 Entity Framework 4(实际上是版本 2)。
Entity Framework似乎比它的第一个版本有了巨大的改进。因此,我从来没有在任何项目中使用过 EF,因为我认为 EF 与 NHibernate 相比还不够成熟。
NHibernate及其当前的贡献 FluentNHibernate和 Linq for NHibernate by Ayende Rahien
我的感觉是,当 NHibernate 的第二个版本问世时,Microsoft 只是想重新获得它在支持 NHibernate 时失去的领域。不过,我担心的是以下几点(排名不分先后):
- EF4 是否会减少 XML 的冗长程度?
- EF4 是否与 SQL Server 以外的基础数据存储兼容?
- 使用 EF4 而不是 FluentNHibernate 或 NHibernate 本身的最大好处是什么?
NHibernate 是一个很棒的工具,我想每个人都同意。由于其前身 Hibernate,我们可以很容易地找到文档和教程以及示例应用程序来熟悉它。 FluentNHibernate 不是这种情况。特别是根据我现在正在进行的项目,它要求我进一步研究 NHibernate 及其选项(例如 FluentNHibernate),以便记录 NHibernate 和 FluentNHibernate 技术的使用规则和最佳实践。因此,作为一名 C-Style 开发人员,我被 VB.NET 束缚住了手铐,尽管到目前为止我已经找到了 VB.NET 中提供的示例的一些语法等价物。
我确实相信 NHibernate 是最佳选择,但作为一名软件顾问,我不能(不想)错过重要的技术变化、改进和发展。
尽管我读到关于 EF1 的负面评论,但 EF4 似乎很有前途。大家对 NHibernate 和 Entity Framework 途径有何看法?至于我,我对所有这些读数感到困惑。我需要你把我的头从水里拉出来。
谢谢大家!
最佳答案
我对 EF 几乎一无所知,但快速浏览一下所提供的链接让我相信EF 不具备 Fluent NHibernate 的自动映射功能。
编辑:一些评论者向我指出链接表明在 EF 中有一些自动映射,但它是否像 FNH 一样强大(例如,能够自动映射其他对象的集合)。
就个人而言,我喜欢能够以面向对象的方式设计 POCO,并让该工具处理映射到关系数据库的所有繁忙工作。
据我所知,FNH 仍然具有最强大的自动映射功能。
转到 Fluent NHibernate Automapping了解更多信息。
关于c# - MS Entity Framework VS NHibernate 及其派生贡献(FluentNHibernate、Linq for NHibernate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2201355/