我和我的一位同事讨论过。我们在工作中使用Linq到Sql,我在工作中有点新意,所以我问他为什么我们不使用Linq to Entities?他提出了一些论点,其中一个是“因为Linq to Entities比linq慢到Sql”。我对此持怀疑态度,我知道Linq to Entities更复杂并且具有其他功能,但我不明白为什么它会变慢。
Linq对实体的影响是否较慢?对这种论点有什么好的回应?
答案 0 :(得分:5)
这可能是由于早期版本的Entity Framework中的性能问题。
在早期版本中,有很多问题会在实体框架中翻译得不好。后来的版本解决了许多这些问题,所以现在我认为这可能是更好或更好的性能。
话虽如此,这实际上取决于您正在测试的内容 - 基准测试和分析是唯一的方法。对于某些操作,Linq To SQL会更快 - 但其他人的EF也会更快。话虽这么说,EF现在允许更多的机会来解决限制和问题,因此随着时间的推移可能更容易调整。
答案 1 :(得分:1)
就纯粹的性能而言,LINq To SQL应该稍快一些,因为它使用单层映射,而Linq to Entities有两层映射,而额外的映射可能会有性能成本。
但是你应该在自己的利用环境中做一些基准测试,因为大多数时候都不会注意到性能差异......