我们正准备开始重新开发一个大型的老化的内部企业应用程序。我们已经决定使用ASP.NET MVC,但是正在考虑选择哪种对象关系Map(ORM)。当然,有大量的开放源码和付费的ORM实现可用。然而,NHibernate似乎拥有最大的思想份额,而Entity Framework是微软的新宠。
当我们正在做研究和玩弄这两个我们想把它放在社区的ORM(NHibernate,实体框架,或其他),他们更喜欢和为什么。
有些类似的堆栈溢出问题
- What are you favorite .NET ORMs?(良好列表,但无合理性说明)
- ASP.NET MVC + ORM(主要关注Castle项目AR)
- What object mapper solution would you recommend for .NET? [封闭式问题]
其他.NET ORM阅读
3条答案
按热度按时间kgsdhlau1#
您应该看一下x1e0 f1 a,它是一个使用NHibernate的ASP .NETMVC应用程序框架。
在过去的几年里,我已经使用了一些O/RM,除了NHibernate之外,我没有办法选择任何东西。
1.这是最成熟的。
1.它有很多功能。
1.它背后有一个很好的社区。
1.它有一些很棒的辅助项目,比如Fluent NHibernate。
我不知道在你所链接的问题中,人们还能给予你更多的信息。
bmvo0sr52#
狂言回答:没有。
这并不是说,如果使用得当,ORM不是一项了不起的技术。但在2011年,它们正迅速成为一把万能的锤子,并非所有问题都是钉子。现代ORM中发生的事情太多了,特别是对于不太精通ORM的人来说,它们可能会混淆事情,而不是帮助事情。或者,有时候事情很简单,直接的SQL是一个更好的选择。2不管ORM有多好,抽象在某个点上会泄漏。
另一方面,NoSQL的发展也是值得关注的。这项技术还有点新,但对于新的工作来说,它是一种必须考虑的数据访问策略,因为它在构建应用程序时花费了太多的精力。
vaqhlq813#
简短回答:两者都用(我确实两者都用)...
有了ORM有多种可能性,都取决于你想要什么.
作为一个真实的的ORMMap器,我强烈推荐NHibernate和Fluent NHMap。你需要大量的研究来构建一个好的体系结构,但是没有什么会阻碍你。通过最小的妥协,你得到了真正的灵活性。
EF 6x(核心不是生产就绪的IMHO)被称为ORM,但它生成的更接近DAL。有些事情你不能用EF 6有效地完成。尽管如此,这是我最喜欢的读取模型工具,而我确实将它与NHibernate(其中NH我用于DDD/写入模型)结合使用。
现在讨论性能-它总是有优点和缺点。如果您更深入地了解ORM体系结构(请参阅我的文章:avoid ORM bad habits),那么您将直观地找到提高速度的方法。下面是我的另一篇文章,介绍如何将EF 6x提高5倍(至少在读取情况下):EF6.x 5x faster