哪一个可以有更好的性能 - LINQ to EF或NHibernate?

时间:2010-04-13 09:10:21

标签: c# sql-server performance nhibernate linq-to-entities

我想开始一个大项目。我研究了LINQ到EF和NHibernate的性能问题。我想在我的项目中使用其中一个作为ORM。现在我的问题是,这两个ORM中的哪一个可以让我在我的项目中获得更好的表现?我将使用SQL Server 2008作为数据库,使用C#作为编程语言。

3 个答案:

答案 0 :(得分:4)

两者都没有“更好的表现。”

在分析性能时,您需要查看限制因素。在这种情况下,限制因素不是您选择的ORM,而是您如何使用该工具,如何编写查询以及如何优化数据库后端。

因此,“最快”的ORM将是您可以正确使用的ORM,再加上您最了解的数据库服务器。

ORM本身确实有一定的开销,因此就纯粹的性能而言,“最快”是根本不使用。但是,这有利于计算机在开发时的时间,这通常不是一个很好的权衡。 ORM可以节省大量的开发时间,而正确使用时只需要很小的开销。

通常,当人们在使用ORM时遇到性能问题时,这是因为他们错误地使用了ORM,而不是因为他们选择了“错误的”ORM。

答案 1 :(得分:3)

我们目前正在我们的一个项目上使用Fluent NHibernate(使用Web服务,这会增加额外的时间延迟),据我所知,数据访问非常即时(从人的角度来看)。

虽然有人可以用具体数字提供答案。

由于这两个ORM有些不同,最好根据您的具体需求决定使用哪个ORM,而不是性能(就像我说的那样,这应该不是什么大问题。)< / p>

答案 2 :(得分:1)

这是一个不错的benchmark。您可以看到结果取决于您是在执行SELECTUPDATEDELETE

相关问题