我试着做了很多研究,但我更喜欢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;

Sql相关问答推荐

Click house在数组中生成X行Y随机数

如何在VB.NET中使用MS SYS根据开始和结束期间日期进行查询

基于模式或其他行集的数据复制

如何从多行数据中获取一行合并数据?

使用占位符向SQL INSERT查询添加 case

如何根据同一表中某一列中的值重新排列行(仅输出它们)(重新排序)?

连接三个表的正确方式是什么?在这三个表中,可以显示在一个表上的行将在其他表中显示结果

SQL:如何在表中同时使用GROUPING和CONDITION?

用户购买平台及金额统计

从数据库中查找总和大于或等于查询中的数字的数字

Select 非重复值并按条件排除行

如何用QuestDB生成蜡烛图?

SQL仅返回第一个字母在A-Z之间的值

SQL中相同表内的VLOOKUP等价

从每月生成的系列中生成每日汇率

如何在第二个 INSERT 中使用第一个 INSERT 自动生成的 ID

一次 Select 语句中按组累计的SQL累计数

Set vs let vs 在snowflake中声明变量

从每行中排除最大元素

如何使用 pg-promise 创建要在复杂的 sql 查询中使用的 VALUES 列表?