Linq对SQL的速度是否比Linq更快?

时间:2011-11-15 21:57:47

标签: .net performance linq linq-to-sql linq-to-entities

我和我的一位同事讨论过。我们在工作中使用Linq到Sql,我在工作中有点新意,所以我问他为什么我们不使用Linq to Entities?他提出了一些论点,其中一个是“因为Linq to Entities比linq慢到Sql”。我对此持怀疑态度,我知道Linq to Entities更复杂并且具有其他功能,但我不明白为什么它会变慢。

Linq对实体的影响是否较慢?对这种论点有什么好的回应?

2 个答案:

答案 0 :(得分:5)

这可能是由于早期版本的Entity Framework中的性能问题。

在早期版本中,有很多问题会在实体框架中翻译得不好。后来的版本解决了许多这些问题,所以现在我认为这可能是更好或更好的性能。

话虽如此,这实际上取决于您正在测试的内容 - 基准测试和分析是唯一的方法。对于某些操作,Linq To SQL会更快 - 但其他人的EF也会更快。话虽这么说,EF现在允许更多的机会来解决限制和问题,因此随着时间的推移可能更容易调整。

答案 1 :(得分:1)

就纯粹的性能而言,LINq To SQL应该稍快一些,因为它使用单层映射,而Linq to Entities有两层映射,而额外的映射可能会有性能成本。

但是你应该在自己的利用环境中做一些基准测试,因为大多数时候都不会注意到性能差异......