我试着做了很多研究,但我更喜欢db,所以即使是MSDN中的解释对我来说也没有任何意义.有谁能解释一下,并举例说明Include()
语句在SQL
查询中的作用?
我试着做了很多研究,但我更喜欢db,所以即使是MSDN中的解释对我来说也没有任何意义.有谁能解释一下,并举例说明Include()
语句在SQL
查询中的作用?
比如说,你想得到一份所有客户的名单:
var customers = context.Customers.ToList();
让我们假设每个Customer
对象都有一个对其Orders
集合的引用,每个Order
都有对LineItems
的引用,LineItems
也可以引用Product
.
如您所见, Select 一个包含许多相关实体的顶级对象可能会导致一个需要从多个源中提取数据的查询.作为性能度量,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;