返回题库高级 .NET 刷题EF Core 高级选择题 · 第 3 / 8 篇

EF Core 高级试题 03:Include、投影与拆分查询

041 关于Include 加载,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. Include 只发额外小查询,不会改变主查询结果形状
  • B. 是否需要实体图应由返回契约决定,不能把 Include 当默认保险
  • C. 只要观察到“多个集合 Include 后响应数据膨胀”,就能把这次现象视为所有环境中的固定行为。
  • D. Include 在查询中加载指定导航,但过多集合导航可能扩大结果集和物化成本
查看答案与解析

正确答案D

正确项给出了Include 加载可直接依赖的规则:“Include 在查询中加载指定导航,但过多集合导航可能扩大结果集和物化成本”。“是否需要实体图应由返回契约决定,不能把 Include 当默认保险”是应用规则前必须确认的边界,不是规则本身;“Include 只发额外小查询,不会改变主查询结果形状”则把常见现象或实现细节扩大成了平台保证。场景“多个集合 Include 后响应数据膨胀”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

042 生产环境出现“多个集合 Include 后响应数据膨胀”时,针对Include 加载应如何排查?

难度: 进阶

  • A. 直接采用“Include 只发额外小查询,不会改变主查询结果形状”解释现象,不再收集目标进程和发布配置证据。
  • B. 只增加机器资源或重启进程,以一次恢复结果代替对“是否需要实体图应由返回契约决定,不能把 Include 当默认保险”的验证。
  • C. 先验证“是否需要实体图应由返回契约决定,不能把 Include 当默认保险”,再使用运行时指标、日志或最小复现检查“Include 在查询中加载指定导航,但过多集合导航可能扩大结果集和物化成本”是否成立。
  • D. 只检查代码是否能够编译,通过后便认定“Include 在查询中加载指定导航,但过多集合导航可能扩大结果集和物化成本”在当前部署中必然成立。
查看答案与解析

正确答案C

“多个集合 Include 后响应数据膨胀”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“是否需要实体图应由返回契约决定,不能把 Include 当默认保险”,再以“Include 在查询中加载指定导航,但过多集合导航可能扩大结果集和物化成本”组织证据。采用误区“Include 只发额外小查询,不会改变主查询结果形状”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

043 评审Include 加载相关实现时,以下哪项判断不成立?

难度: 实战

  • A. Include 在查询中加载指定导航,但过多集合导航可能扩大结果集和物化成本
  • B. Include 只发额外小查询,不会改变主查询结果形状
  • C. 是否需要实体图应由返回契约决定,不能把 Include 当默认保险
  • D. 遇到“多个集合 Include 后响应数据膨胀”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案B

题目要求找出不成立的判断,“Include 只发额外小查询,不会改变主查询结果形状”正是Include 加载的典型误区。主规则“Include 在查询中加载指定导航,但过多集合导航可能扩大结果集和物化成本”描述了实现应依赖的契约,边界“是否需要实体图应由返回契约决定,不能把 Include 当默认保险”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

044 准备上线涉及Include 加载的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“Include 在查询中加载指定导航,但过多集合导航可能扩大结果集和物化成本”实现,在“是否需要实体图应由返回契约决定,不能把 Include 当默认保险”成立的环境中验证,并为“多个集合 Include 后响应数据膨胀”保留可观测证据和回退条件。
  • B. 依据“Include 只发额外小查询,不会改变主查询结果形状”完成修改,只要本地运行一次成功就立即发布。
  • C. 按照“Include 在查询中加载指定导航,但过多集合导航可能扩大结果集和物化成本”修改代码,但不核对“是否需要实体图应由返回契约决定,不能把 Include 当默认保险”或目标发布模式。
  • D. 只验证“是否需要实体图应由返回契约决定,不能把 Include 当默认保险”,实现仍继续依赖“Include 只发额外小查询,不会改变主查询结果形状”这一未经证明的假设。
查看答案与解析

正确答案A

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“Include 在查询中加载指定导航,但过多集合导航可能扩大结果集和物化成本”,部署环境满足“是否需要实体图应由返回契约决定,不能把 Include 当默认保险”,并能在“多个集合 Include 后响应数据膨胀”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

045 关于笛卡尔膨胀,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 数据库会自动消除 Include 产生的所有重复行
  • B. 同级集合 JOIN 可能产生行数乘积并重复主体列,造成传输和物化开销
  • C. 嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL
  • D. 只要观察到“少量实体却传输大量结果行”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案B

正确项给出了笛卡尔膨胀可直接依赖的规则:“同级集合 JOIN 可能产生行数乘积并重复主体列,造成传输和物化开销”。“嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL”是应用规则前必须确认的边界,不是规则本身;“数据库会自动消除 Include 产生的所有重复行”则把常见现象或实现细节扩大成了平台保证。场景“少量实体却传输大量结果行”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

046 生产环境出现“少量实体却传输大量结果行”时,针对笛卡尔膨胀应如何排查?

难度: 进阶

  • A. 先验证“嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL”,再使用运行时指标、日志或最小复现检查“同级集合 JOIN 可能产生行数乘积并重复主体列,造成传输和物化开销”是否成立。
  • B. 直接采用“数据库会自动消除 Include 产生的所有重复行”解释现象,不再收集目标进程和发布配置证据。
  • C. 只增加机器资源或重启进程,以一次恢复结果代替对“嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL”的验证。
  • D. 只检查代码是否能够编译,通过后便认定“同级集合 JOIN 可能产生行数乘积并重复主体列,造成传输和物化开销”在当前部署中必然成立。
查看答案与解析

正确答案A

“少量实体却传输大量结果行”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL”,再以“同级集合 JOIN 可能产生行数乘积并重复主体列,造成传输和物化开销”组织证据。采用误区“数据库会自动消除 Include 产生的所有重复行”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

047 评审笛卡尔膨胀相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 同级集合 JOIN 可能产生行数乘积并重复主体列,造成传输和物化开销
  • B. 嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL
  • C. 数据库会自动消除 Include 产生的所有重复行
  • D. 遇到“少量实体却传输大量结果行”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案C

题目要求找出不成立的判断,“数据库会自动消除 Include 产生的所有重复行”正是笛卡尔膨胀的典型误区。主规则“同级集合 JOIN 可能产生行数乘积并重复主体列,造成传输和物化开销”描述了实现应依赖的契约,边界“嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

048 准备上线涉及笛卡尔膨胀的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“数据库会自动消除 Include 产生的所有重复行”完成修改,只要本地运行一次成功就立即发布。
  • B. 按照“同级集合 JOIN 可能产生行数乘积并重复主体列,造成传输和物化开销”修改代码,但不核对“嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL”或目标发布模式。
  • C. 只验证“嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL”,实现仍继续依赖“数据库会自动消除 Include 产生的所有重复行”这一未经证明的假设。
  • D. 依据“同级集合 JOIN 可能产生行数乘积并重复主体列,造成传输和物化开销”实现,在“嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL”成立的环境中验证,并为“少量实体却传输大量结果行”保留可观测证据和回退条件。
查看答案与解析

正确答案D

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“同级集合 JOIN 可能产生行数乘积并重复主体列,造成传输和物化开销”,部署环境满足“嵌套 ThenInclude 与同级集合的结果形状不同,应检查生成 SQL”,并能在“少量实体却传输大量结果行”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

049 关于Split Query,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 拆分查询始终只执行一次数据库往返且快于单查询
  • B. 多次往返和多查询之间的数据一致性需要结合事务级别权衡
  • C. AsSplitQuery 可把包含多个集合的查询拆为多条数据库命令以避免部分笛卡尔膨胀
  • D. 只要观察到“网络延迟较高时拆分后反而变慢”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案C

正确项给出了Split Query可直接依赖的规则:“AsSplitQuery 可把包含多个集合的查询拆为多条数据库命令以避免部分笛卡尔膨胀”。“多次往返和多查询之间的数据一致性需要结合事务级别权衡”是应用规则前必须确认的边界,不是规则本身;“拆分查询始终只执行一次数据库往返且快于单查询”则把常见现象或实现细节扩大成了平台保证。场景“网络延迟较高时拆分后反而变慢”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

050 生产环境出现“网络延迟较高时拆分后反而变慢”时,针对Split Query应如何排查?

难度: 进阶

  • A. 先验证“多次往返和多查询之间的数据一致性需要结合事务级别权衡”,再使用运行时指标、日志或最小复现检查“AsSplitQuery 可把包含多个集合的查询拆为多条数据库命令以避免部分笛卡尔膨胀”是否成立。
  • B. 直接采用“拆分查询始终只执行一次数据库往返且快于单查询”解释现象,不再收集目标进程和发布配置证据。
  • C. 只增加机器资源或重启进程,以一次恢复结果代替对“多次往返和多查询之间的数据一致性需要结合事务级别权衡”的验证。
  • D. 只检查代码是否能够编译,通过后便认定“AsSplitQuery 可把包含多个集合的查询拆为多条数据库命令以避免部分笛卡尔膨胀”在当前部署中必然成立。
查看答案与解析

正确答案A

“网络延迟较高时拆分后反而变慢”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“多次往返和多查询之间的数据一致性需要结合事务级别权衡”,再以“AsSplitQuery 可把包含多个集合的查询拆为多条数据库命令以避免部分笛卡尔膨胀”组织证据。采用误区“拆分查询始终只执行一次数据库往返且快于单查询”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

051 评审Split Query相关实现时,以下哪项判断不成立?

难度: 实战

  • A. AsSplitQuery 可把包含多个集合的查询拆为多条数据库命令以避免部分笛卡尔膨胀
  • B. 多次往返和多查询之间的数据一致性需要结合事务级别权衡
  • C. 遇到“网络延迟较高时拆分后反而变慢”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
  • D. 拆分查询始终只执行一次数据库往返且快于单查询
查看答案与解析

正确答案D

题目要求找出不成立的判断,“拆分查询始终只执行一次数据库往返且快于单查询”正是Split Query的典型误区。主规则“AsSplitQuery 可把包含多个集合的查询拆为多条数据库命令以避免部分笛卡尔膨胀”描述了实现应依赖的契约,边界“多次往返和多查询之间的数据一致性需要结合事务级别权衡”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

052 准备上线涉及Split Query的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“拆分查询始终只执行一次数据库往返且快于单查询”完成修改,只要本地运行一次成功就立即发布。
  • B. 依据“AsSplitQuery 可把包含多个集合的查询拆为多条数据库命令以避免部分笛卡尔膨胀”实现,在“多次往返和多查询之间的数据一致性需要结合事务级别权衡”成立的环境中验证,并为“网络延迟较高时拆分后反而变慢”保留可观测证据和回退条件。
  • C. 按照“AsSplitQuery 可把包含多个集合的查询拆为多条数据库命令以避免部分笛卡尔膨胀”修改代码,但不核对“多次往返和多查询之间的数据一致性需要结合事务级别权衡”或目标发布模式。
  • D. 只验证“多次往返和多查询之间的数据一致性需要结合事务级别权衡”,实现仍继续依赖“拆分查询始终只执行一次数据库往返且快于单查询”这一未经证明的假设。
查看答案与解析

正确答案B

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“AsSplitQuery 可把包含多个集合的查询拆为多条数据库命令以避免部分笛卡尔膨胀”,部署环境满足“多次往返和多查询之间的数据一致性需要结合事务级别权衡”,并能在“网络延迟较高时拆分后反而变慢”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

053 关于投影,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. Select 到 DTO 会让所有导航属性自动延迟加载
  • B. 投影中仍需避免 N+1 和不可翻译表达式
  • C. 只要观察到“列表页只需三列却加载大字段”,就能把这次现象视为所有环境中的固定行为。
  • D. 只投影接口需要的列和形状通常比加载完整实体图更节省传输、跟踪与物化成本
查看答案与解析

正确答案D

正确项给出了投影可直接依赖的规则:“只投影接口需要的列和形状通常比加载完整实体图更节省传输、跟踪与物化成本”。“投影中仍需避免 N+1 和不可翻译表达式”是应用规则前必须确认的边界,不是规则本身;“Select 到 DTO 会让所有导航属性自动延迟加载”则把常见现象或实现细节扩大成了平台保证。场景“列表页只需三列却加载大字段”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

054 生产环境出现“列表页只需三列却加载大字段”时,针对投影应如何排查?

难度: 进阶

  • A. 直接采用“Select 到 DTO 会让所有导航属性自动延迟加载”解释现象,不再收集目标进程和发布配置证据。
  • B. 先验证“投影中仍需避免 N+1 和不可翻译表达式”,再使用运行时指标、日志或最小复现检查“只投影接口需要的列和形状通常比加载完整实体图更节省传输、跟踪与物化成本”是否成立。
  • C. 只增加机器资源或重启进程,以一次恢复结果代替对“投影中仍需避免 N+1 和不可翻译表达式”的验证。
  • D. 只检查代码是否能够编译,通过后便认定“只投影接口需要的列和形状通常比加载完整实体图更节省传输、跟踪与物化成本”在当前部署中必然成立。
查看答案与解析

正确答案B

“列表页只需三列却加载大字段”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“投影中仍需避免 N+1 和不可翻译表达式”,再以“只投影接口需要的列和形状通常比加载完整实体图更节省传输、跟踪与物化成本”组织证据。采用误区“Select 到 DTO 会让所有导航属性自动延迟加载”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

055 评审投影相关实现时,以下哪项判断不成立?

难度: 实战

  • A. Select 到 DTO 会让所有导航属性自动延迟加载
  • B. 只投影接口需要的列和形状通常比加载完整实体图更节省传输、跟踪与物化成本
  • C. 投影中仍需避免 N+1 和不可翻译表达式
  • D. 遇到“列表页只需三列却加载大字段”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案A

题目要求找出不成立的判断,“Select 到 DTO 会让所有导航属性自动延迟加载”正是投影的典型误区。主规则“只投影接口需要的列和形状通常比加载完整实体图更节省传输、跟踪与物化成本”描述了实现应依赖的契约,边界“投影中仍需避免 N+1 和不可翻译表达式”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

056 准备上线涉及投影的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“Select 到 DTO 会让所有导航属性自动延迟加载”完成修改,只要本地运行一次成功就立即发布。
  • B. 按照“只投影接口需要的列和形状通常比加载完整实体图更节省传输、跟踪与物化成本”修改代码,但不核对“投影中仍需避免 N+1 和不可翻译表达式”或目标发布模式。
  • C. 依据“只投影接口需要的列和形状通常比加载完整实体图更节省传输、跟踪与物化成本”实现,在“投影中仍需避免 N+1 和不可翻译表达式”成立的环境中验证,并为“列表页只需三列却加载大字段”保留可观测证据和回退条件。
  • D. 只验证“投影中仍需避免 N+1 和不可翻译表达式”,实现仍继续依赖“Select 到 DTO 会让所有导航属性自动延迟加载”这一未经证明的假设。
查看答案与解析

正确答案C

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“只投影接口需要的列和形状通常比加载完整实体图更节省传输、跟踪与物化成本”,部署环境满足“投影中仍需避免 N+1 和不可翻译表达式”,并能在“列表页只需三列却加载大字段”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

057 关于显式加载,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 显式加载允许在已跟踪实体上按需要加载导航,并可对关联查询继续筛选
  • B. 显式加载会自动把循环内所有请求合并为一条 SQL
  • C. 循环中逐实体加载容易形成 N+1,应根据访问模式批量处理
  • D. 只要观察到“逐条加载订单明细造成大量往返”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案A

正确项给出了显式加载可直接依赖的规则:“显式加载允许在已跟踪实体上按需要加载导航,并可对关联查询继续筛选”。“循环中逐实体加载容易形成 N+1,应根据访问模式批量处理”是应用规则前必须确认的边界,不是规则本身;“显式加载会自动把循环内所有请求合并为一条 SQL”则把常见现象或实现细节扩大成了平台保证。场景“逐条加载订单明细造成大量往返”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

058 生产环境出现“逐条加载订单明细造成大量往返”时,针对显式加载应如何排查?

难度: 进阶

  • A. 直接采用“显式加载会自动把循环内所有请求合并为一条 SQL”解释现象,不再收集目标进程和发布配置证据。
  • B. 只增加机器资源或重启进程,以一次恢复结果代替对“循环中逐实体加载容易形成 N+1,应根据访问模式批量处理”的验证。
  • C. 先验证“循环中逐实体加载容易形成 N+1,应根据访问模式批量处理”,再使用运行时指标、日志或最小复现检查“显式加载允许在已跟踪实体上按需要加载导航,并可对关联查询继续筛选”是否成立。
  • D. 只检查代码是否能够编译,通过后便认定“显式加载允许在已跟踪实体上按需要加载导航,并可对关联查询继续筛选”在当前部署中必然成立。
查看答案与解析

正确答案C

“逐条加载订单明细造成大量往返”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“循环中逐实体加载容易形成 N+1,应根据访问模式批量处理”,再以“显式加载允许在已跟踪实体上按需要加载导航,并可对关联查询继续筛选”组织证据。采用误区“显式加载会自动把循环内所有请求合并为一条 SQL”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

059 评审显式加载相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 显式加载允许在已跟踪实体上按需要加载导航,并可对关联查询继续筛选
  • B. 循环中逐实体加载容易形成 N+1,应根据访问模式批量处理
  • C. 遇到“逐条加载订单明细造成大量往返”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
  • D. 显式加载会自动把循环内所有请求合并为一条 SQL
查看答案与解析

正确答案D

题目要求找出不成立的判断,“显式加载会自动把循环内所有请求合并为一条 SQL”正是显式加载的典型误区。主规则“显式加载允许在已跟踪实体上按需要加载导航,并可对关联查询继续筛选”描述了实现应依赖的契约,边界“循环中逐实体加载容易形成 N+1,应根据访问模式批量处理”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

060 准备上线涉及显式加载的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“显式加载会自动把循环内所有请求合并为一条 SQL”完成修改,只要本地运行一次成功就立即发布。
  • B. 依据“显式加载允许在已跟踪实体上按需要加载导航,并可对关联查询继续筛选”实现,在“循环中逐实体加载容易形成 N+1,应根据访问模式批量处理”成立的环境中验证,并为“逐条加载订单明细造成大量往返”保留可观测证据和回退条件。
  • C. 按照“显式加载允许在已跟踪实体上按需要加载导航,并可对关联查询继续筛选”修改代码,但不核对“循环中逐实体加载容易形成 N+1,应根据访问模式批量处理”或目标发布模式。
  • D. 只验证“循环中逐实体加载容易形成 N+1,应根据访问模式批量处理”,实现仍继续依赖“显式加载会自动把循环内所有请求合并为一条 SQL”这一未经证明的假设。
查看答案与解析

正确答案B

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“显式加载允许在已跟踪实体上按需要加载导航,并可对关联查询继续筛选”,部署环境满足“循环中逐实体加载容易形成 N+1,应根据访问模式批量处理”,并能在“逐条加载订单明细造成大量往返”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

官方资料

当前分类

EF Core 高级选择题

查看全部分类 →
  1. 01EF Core 高级试题 01:查询翻译与客户端计算20 题
  2. 02EF Core 高级试题 02:跟踪、身份解析与更新模型20 题
  3. 03EF Core 高级试题 03:Include、投影与拆分查询20 题
  4. 04EF Core 高级试题 04:DbContext 池与数据库连接池20 题
  5. 05EF Core 高级试题 05:编译查询与批量更新删除20 题
ESC

输入关键词开始搜索