关于使用LINQ
来执行Joins
,我读了这个article。我想知道除了编写一个可以加入表的存储过程之外还有多少好处?使用LINQ
加入会导致任何性能问题吗?
更新
所以以此为例:
var employeeInfo =
from employee in employees
join addInfo in additionalInfo on employee.ID equals addInfo.CategoryID into allInfo
select new { CategoryName = category.Name, Products = allInfo};
这个简单的join
会让我受益于stored procedure
吗?我知道,根据表格的大小和表格的数量,join
可能会对何时使用LINQ
vs store procedure
产生重大影响。什么是好的"经验法则"关于LINQ
联接应该使用的表和大小的数量,以及执行LINQ
联接时是否会影响性能?
答案 0 :(得分:1)
查询连接的性能通常取决于连接字段上是否存在正确的索引。如果您的查询正在生成全表扫描,则字段不是属性索引,您的性能将直接受到影响。如果您担心存储过程性能,请执行解释计划。
至于LINQ和join,你不想这样做。
以下是关于LINQ联接的一篇好文章,来自文章:
LINQ to SQL和LINQ to Entities的最大好处之一是导航属性,允许跨多个表进行查询,而无需使用显式连接。不幸的是,LINQ查询通常被编写为SQL查询的直接转换,而没有利用LINQ to SQL和LINQ to Entities提供的更丰富的功能。
https://coding.abel.nu/2012/06/dont-use-linqs-join-navigate/