Linq-Include

LINQ中的Include()有什么作用? 

 

我尝试进行了大量研究,但我更像是数据库专家-因此,即使MSDN中的解释对我也没有任何意义.有人可以解释一下,并提供一些示例说明SQL查询中的Include()语句吗?

解决方案

例如,假设您要获取所有客户的列表:

var customers = context.Customers.ToList();

并假定每个Customer对象都有对其Orders集的引用,并且每个Order都具有对LineItems的引用,而该LineItems也可以引用Product.

如您所见,选择具有许多相关实体的顶级对象可能会导致查询需要从许多来源提取数据.作为一项性能指标,Include()允许您指示应在同一查询中从数据库中读取哪些相关实体.

使用相同的示例,这可能会带来所有相关的订单标题,但没有其他记录:

var customersWithOrderDetail = context.Customers.Include("Orders").ToList();

自从您要求使用SQL以来,最后一点是,没有Include()的第一条语句可以生成一个简单的语句:

SELECT * FROM Customers;

调用Include("Orders")的最终语句可能看起来像这样:

SELECT *
FROM Customers JOIN Orders ON Customers.Id = Orders.CustomerId;
posted @ 2021-12-02 23:12  vba是最好的语言  阅读(554)  评论(0)    收藏  举报