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

EF Core 高级试题 04:DbContext 池与数据库连接池

061 关于DbContext 池,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 池化上下文会为每次请求重新执行完整构造与 OnConfiguring
  • B. DbContext 池复用已重置的上下文实例,减少频繁构造和内部服务初始化成本
  • C. OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入
  • D. 只要观察到“多租户筛选器沿用上个请求值”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案B

正确项给出了DbContext 池可直接依赖的规则:“DbContext 池复用已重置的上下文实例,减少频繁构造和内部服务初始化成本”。“OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入”是应用规则前必须确认的边界,不是规则本身;“池化上下文会为每次请求重新执行完整构造与 OnConfiguring”则把常见现象或实现细节扩大成了平台保证。场景“多租户筛选器沿用上个请求值”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

062 生产环境出现“多租户筛选器沿用上个请求值”时,针对DbContext 池应如何排查?

难度: 进阶

  • A. 直接采用“池化上下文会为每次请求重新执行完整构造与 OnConfiguring”解释现象,不再收集目标进程和发布配置证据。
  • B. 只增加机器资源或重启进程,以一次恢复结果代替对“OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入”的验证。
  • C. 只检查代码是否能够编译,通过后便认定“DbContext 池复用已重置的上下文实例,减少频繁构造和内部服务初始化成本”在当前部署中必然成立。
  • D. 先验证“OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入”,再使用运行时指标、日志或最小复现检查“DbContext 池复用已重置的上下文实例,减少频繁构造和内部服务初始化成本”是否成立。
查看答案与解析

正确答案D

“多租户筛选器沿用上个请求值”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入”,再以“DbContext 池复用已重置的上下文实例,减少频繁构造和内部服务初始化成本”组织证据。采用误区“池化上下文会为每次请求重新执行完整构造与 OnConfiguring”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

063 评审DbContext 池相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 池化上下文会为每次请求重新执行完整构造与 OnConfiguring
  • B. DbContext 池复用已重置的上下文实例,减少频繁构造和内部服务初始化成本
  • C. OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入
  • D. 遇到“多租户筛选器沿用上个请求值”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案A

题目要求找出不成立的判断,“池化上下文会为每次请求重新执行完整构造与 OnConfiguring”正是DbContext 池的典型误区。主规则“DbContext 池复用已重置的上下文实例,减少频繁构造和内部服务初始化成本”描述了实现应依赖的契约,边界“OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

064 准备上线涉及DbContext 池的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“池化上下文会为每次请求重新执行完整构造与 OnConfiguring”完成修改,只要本地运行一次成功就立即发布。
  • B. 按照“DbContext 池复用已重置的上下文实例,减少频繁构造和内部服务初始化成本”修改代码,但不核对“OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入”或目标发布模式。
  • C. 依据“DbContext 池复用已重置的上下文实例,减少频繁构造和内部服务初始化成本”实现,在“OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入”成立的环境中验证,并为“多租户筛选器沿用上个请求值”保留可观测证据和回退条件。
  • D. 只验证“OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入”,实现仍继续依赖“池化上下文会为每次请求重新执行完整构造与 OnConfiguring”这一未经证明的假设。
查看答案与解析

正确答案C

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“DbContext 池复用已重置的上下文实例,减少频繁构造和内部服务初始化成本”,部署环境满足“OnConfiguring 通常只在首次创建实例时执行,请求级状态必须显式重置和注入”,并能在“多租户筛选器沿用上个请求值”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

065 关于连接池,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 启用 AddDbContextPool 就会自动替代数据库驱动连接池
  • B. 连接字符串差异会形成不同连接池,连接必须及时关闭归还
  • C. 数据库驱动连接池复用物理连接,通常与 EF Core 的 DbContext 池相互独立
  • D. 只要观察到“上下文数量正常但数据库连接耗尽”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案C

正确项给出了连接池可直接依赖的规则:“数据库驱动连接池复用物理连接,通常与 EF Core 的 DbContext 池相互独立”。“连接字符串差异会形成不同连接池,连接必须及时关闭归还”是应用规则前必须确认的边界,不是规则本身;“启用 AddDbContextPool 就会自动替代数据库驱动连接池”则把常见现象或实现细节扩大成了平台保证。场景“上下文数量正常但数据库连接耗尽”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

066 生产环境出现“上下文数量正常但数据库连接耗尽”时,针对连接池应如何排查?

难度: 进阶

  • A. 直接采用“启用 AddDbContextPool 就会自动替代数据库驱动连接池”解释现象,不再收集目标进程和发布配置证据。
  • B. 只增加机器资源或重启进程,以一次恢复结果代替对“连接字符串差异会形成不同连接池,连接必须及时关闭归还”的验证。
  • C. 只检查代码是否能够编译,通过后便认定“数据库驱动连接池复用物理连接,通常与 EF Core 的 DbContext 池相互独立”在当前部署中必然成立。
  • D. 先验证“连接字符串差异会形成不同连接池,连接必须及时关闭归还”,再使用运行时指标、日志或最小复现检查“数据库驱动连接池复用物理连接,通常与 EF Core 的 DbContext 池相互独立”是否成立。
查看答案与解析

正确答案D

“上下文数量正常但数据库连接耗尽”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“连接字符串差异会形成不同连接池,连接必须及时关闭归还”,再以“数据库驱动连接池复用物理连接,通常与 EF Core 的 DbContext 池相互独立”组织证据。采用误区“启用 AddDbContextPool 就会自动替代数据库驱动连接池”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

067 评审连接池相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 数据库驱动连接池复用物理连接,通常与 EF Core 的 DbContext 池相互独立
  • B. 启用 AddDbContextPool 就会自动替代数据库驱动连接池
  • C. 连接字符串差异会形成不同连接池,连接必须及时关闭归还
  • D. 遇到“上下文数量正常但数据库连接耗尽”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案B

题目要求找出不成立的判断,“启用 AddDbContextPool 就会自动替代数据库驱动连接池”正是连接池的典型误区。主规则“数据库驱动连接池复用物理连接,通常与 EF Core 的 DbContext 池相互独立”描述了实现应依赖的契约,边界“连接字符串差异会形成不同连接池,连接必须及时关闭归还”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

068 准备上线涉及连接池的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“数据库驱动连接池复用物理连接,通常与 EF Core 的 DbContext 池相互独立”实现,在“连接字符串差异会形成不同连接池,连接必须及时关闭归还”成立的环境中验证,并为“上下文数量正常但数据库连接耗尽”保留可观测证据和回退条件。
  • B. 依据“启用 AddDbContextPool 就会自动替代数据库驱动连接池”完成修改,只要本地运行一次成功就立即发布。
  • C. 按照“数据库驱动连接池复用物理连接,通常与 EF Core 的 DbContext 池相互独立”修改代码,但不核对“连接字符串差异会形成不同连接池,连接必须及时关闭归还”或目标发布模式。
  • D. 只验证“连接字符串差异会形成不同连接池,连接必须及时关闭归还”,实现仍继续依赖“启用 AddDbContextPool 就会自动替代数据库驱动连接池”这一未经证明的假设。
查看答案与解析

正确答案A

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“数据库驱动连接池复用物理连接,通常与 EF Core 的 DbContext 池相互独立”,部署环境满足“连接字符串差异会形成不同连接池,连接必须及时关闭归还”,并能在“上下文数量正常但数据库连接耗尽”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

069 关于池化状态泄漏,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 池化上下文返回池前由 EF 重置内部状态,但应用自行维护的可变字段需要负责清理
  • B. EF 会自动重置上下文关联的任意第三方对象状态
  • C. 手工打开连接或改变底层驱动状态也必须在归还前恢复
  • D. 只要观察到“下一个请求读取到前一个租户信息”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案A

正确项给出了池化状态泄漏可直接依赖的规则:“池化上下文返回池前由 EF 重置内部状态,但应用自行维护的可变字段需要负责清理”。“手工打开连接或改变底层驱动状态也必须在归还前恢复”是应用规则前必须确认的边界,不是规则本身;“EF 会自动重置上下文关联的任意第三方对象状态”则把常见现象或实现细节扩大成了平台保证。场景“下一个请求读取到前一个租户信息”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

070 生产环境出现“下一个请求读取到前一个租户信息”时,针对池化状态泄漏应如何排查?

难度: 进阶

  • A. 直接采用“EF 会自动重置上下文关联的任意第三方对象状态”解释现象,不再收集目标进程和发布配置证据。
  • B. 先验证“手工打开连接或改变底层驱动状态也必须在归还前恢复”,再使用运行时指标、日志或最小复现检查“池化上下文返回池前由 EF 重置内部状态,但应用自行维护的可变字段需要负责清理”是否成立。
  • C. 只增加机器资源或重启进程,以一次恢复结果代替对“手工打开连接或改变底层驱动状态也必须在归还前恢复”的验证。
  • D. 只检查代码是否能够编译,通过后便认定“池化上下文返回池前由 EF 重置内部状态,但应用自行维护的可变字段需要负责清理”在当前部署中必然成立。
查看答案与解析

正确答案B

“下一个请求读取到前一个租户信息”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“手工打开连接或改变底层驱动状态也必须在归还前恢复”,再以“池化上下文返回池前由 EF 重置内部状态,但应用自行维护的可变字段需要负责清理”组织证据。采用误区“EF 会自动重置上下文关联的任意第三方对象状态”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

071 评审池化状态泄漏相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 池化上下文返回池前由 EF 重置内部状态,但应用自行维护的可变字段需要负责清理
  • B. 手工打开连接或改变底层驱动状态也必须在归还前恢复
  • C. EF 会自动重置上下文关联的任意第三方对象状态
  • D. 遇到“下一个请求读取到前一个租户信息”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案C

题目要求找出不成立的判断,“EF 会自动重置上下文关联的任意第三方对象状态”正是池化状态泄漏的典型误区。主规则“池化上下文返回池前由 EF 重置内部状态,但应用自行维护的可变字段需要负责清理”描述了实现应依赖的契约,边界“手工打开连接或改变底层驱动状态也必须在归还前恢复”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

072 准备上线涉及池化状态泄漏的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“EF 会自动重置上下文关联的任意第三方对象状态”完成修改,只要本地运行一次成功就立即发布。
  • B. 按照“池化上下文返回池前由 EF 重置内部状态,但应用自行维护的可变字段需要负责清理”修改代码,但不核对“手工打开连接或改变底层驱动状态也必须在归还前恢复”或目标发布模式。
  • C. 只验证“手工打开连接或改变底层驱动状态也必须在归还前恢复”,实现仍继续依赖“EF 会自动重置上下文关联的任意第三方对象状态”这一未经证明的假设。
  • D. 依据“池化上下文返回池前由 EF 重置内部状态,但应用自行维护的可变字段需要负责清理”实现,在“手工打开连接或改变底层驱动状态也必须在归还前恢复”成立的环境中验证,并为“下一个请求读取到前一个租户信息”保留可观测证据和回退条件。
查看答案与解析

正确答案D

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“池化上下文返回池前由 EF 重置内部状态,但应用自行维护的可变字段需要负责清理”,部署环境满足“手工打开连接或改变底层驱动状态也必须在归还前恢复”,并能在“下一个请求读取到前一个租户信息”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

073 关于并发使用,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 池化后的 DbContext 可以被多个请求同时使用
  • B. DbContext 不支持多个并发操作共享同一实例,每个工作单元应独立协调使用
  • C. 即使启用池化也只是复用生命周期,不会让实例线程安全
  • D. 只要观察到“并行查询同一上下文触发操作冲突”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案B

正确项给出了并发使用可直接依赖的规则:“DbContext 不支持多个并发操作共享同一实例,每个工作单元应独立协调使用”。“即使启用池化也只是复用生命周期,不会让实例线程安全”是应用规则前必须确认的边界,不是规则本身;“池化后的 DbContext 可以被多个请求同时使用”则把常见现象或实现细节扩大成了平台保证。场景“并行查询同一上下文触发操作冲突”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

074 生产环境出现“并行查询同一上下文触发操作冲突”时,针对并发使用应如何排查?

难度: 进阶

  • A. 先验证“即使启用池化也只是复用生命周期,不会让实例线程安全”,再使用运行时指标、日志或最小复现检查“DbContext 不支持多个并发操作共享同一实例,每个工作单元应独立协调使用”是否成立。
  • B. 直接采用“池化后的 DbContext 可以被多个请求同时使用”解释现象,不再收集目标进程和发布配置证据。
  • C. 只增加机器资源或重启进程,以一次恢复结果代替对“即使启用池化也只是复用生命周期,不会让实例线程安全”的验证。
  • D. 只检查代码是否能够编译,通过后便认定“DbContext 不支持多个并发操作共享同一实例,每个工作单元应独立协调使用”在当前部署中必然成立。
查看答案与解析

正确答案A

“并行查询同一上下文触发操作冲突”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“即使启用池化也只是复用生命周期,不会让实例线程安全”,再以“DbContext 不支持多个并发操作共享同一实例,每个工作单元应独立协调使用”组织证据。采用误区“池化后的 DbContext 可以被多个请求同时使用”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

075 评审并发使用相关实现时,以下哪项判断不成立?

难度: 实战

  • A. DbContext 不支持多个并发操作共享同一实例,每个工作单元应独立协调使用
  • B. 即使启用池化也只是复用生命周期,不会让实例线程安全
  • C. 遇到“并行查询同一上下文触发操作冲突”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
  • D. 池化后的 DbContext 可以被多个请求同时使用
查看答案与解析

正确答案D

题目要求找出不成立的判断,“池化后的 DbContext 可以被多个请求同时使用”正是并发使用的典型误区。主规则“DbContext 不支持多个并发操作共享同一实例,每个工作单元应独立协调使用”描述了实现应依赖的契约,边界“即使启用池化也只是复用生命周期,不会让实例线程安全”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

076 准备上线涉及并发使用的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“池化后的 DbContext 可以被多个请求同时使用”完成修改,只要本地运行一次成功就立即发布。
  • B. 按照“DbContext 不支持多个并发操作共享同一实例,每个工作单元应独立协调使用”修改代码,但不核对“即使启用池化也只是复用生命周期,不会让实例线程安全”或目标发布模式。
  • C. 依据“DbContext 不支持多个并发操作共享同一实例,每个工作单元应独立协调使用”实现,在“即使启用池化也只是复用生命周期,不会让实例线程安全”成立的环境中验证,并为“并行查询同一上下文触发操作冲突”保留可观测证据和回退条件。
  • D. 只验证“即使启用池化也只是复用生命周期,不会让实例线程安全”,实现仍继续依赖“池化后的 DbContext 可以被多个请求同时使用”这一未经证明的假设。
查看答案与解析

正确答案C

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“DbContext 不支持多个并发操作共享同一实例,每个工作单元应独立协调使用”,部署环境满足“即使启用池化也只是复用生命周期,不会让实例线程安全”,并能在“并行查询同一上下文触发操作冲突”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

077 关于池容量,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. DbContext 池容量等于数据库最大连接数并会拒绝额外请求
  • B. 容量是复用上限而不是并发请求硬限制
  • C. 池达到容量后仍可创建非池化实例完成请求,归还时超出容量的实例会被释放
  • D. 只要观察到“高峰期上下文构造次数上升”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案C

正确项给出了池容量可直接依赖的规则:“池达到容量后仍可创建非池化实例完成请求,归还时超出容量的实例会被释放”。“容量是复用上限而不是并发请求硬限制”是应用规则前必须确认的边界,不是规则本身;“DbContext 池容量等于数据库最大连接数并会拒绝额外请求”则把常见现象或实现细节扩大成了平台保证。场景“高峰期上下文构造次数上升”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

078 生产环境出现“高峰期上下文构造次数上升”时,针对池容量应如何排查?

难度: 进阶

  • A. 直接采用“DbContext 池容量等于数据库最大连接数并会拒绝额外请求”解释现象,不再收集目标进程和发布配置证据。
  • B. 先验证“容量是复用上限而不是并发请求硬限制”,再使用运行时指标、日志或最小复现检查“池达到容量后仍可创建非池化实例完成请求,归还时超出容量的实例会被释放”是否成立。
  • C. 只增加机器资源或重启进程,以一次恢复结果代替对“容量是复用上限而不是并发请求硬限制”的验证。
  • D. 只检查代码是否能够编译,通过后便认定“池达到容量后仍可创建非池化实例完成请求,归还时超出容量的实例会被释放”在当前部署中必然成立。
查看答案与解析

正确答案B

“高峰期上下文构造次数上升”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“容量是复用上限而不是并发请求硬限制”,再以“池达到容量后仍可创建非池化实例完成请求,归还时超出容量的实例会被释放”组织证据。采用误区“DbContext 池容量等于数据库最大连接数并会拒绝额外请求”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

079 评审池容量相关实现时,以下哪项判断不成立?

难度: 实战

  • A. DbContext 池容量等于数据库最大连接数并会拒绝额外请求
  • B. 池达到容量后仍可创建非池化实例完成请求,归还时超出容量的实例会被释放
  • C. 容量是复用上限而不是并发请求硬限制
  • D. 遇到“高峰期上下文构造次数上升”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案A

题目要求找出不成立的判断,“DbContext 池容量等于数据库最大连接数并会拒绝额外请求”正是池容量的典型误区。主规则“池达到容量后仍可创建非池化实例完成请求,归还时超出容量的实例会被释放”描述了实现应依赖的契约,边界“容量是复用上限而不是并发请求硬限制”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

080 准备上线涉及池容量的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“DbContext 池容量等于数据库最大连接数并会拒绝额外请求”完成修改,只要本地运行一次成功就立即发布。
  • B. 按照“池达到容量后仍可创建非池化实例完成请求,归还时超出容量的实例会被释放”修改代码,但不核对“容量是复用上限而不是并发请求硬限制”或目标发布模式。
  • C. 只验证“容量是复用上限而不是并发请求硬限制”,实现仍继续依赖“DbContext 池容量等于数据库最大连接数并会拒绝额外请求”这一未经证明的假设。
  • D. 依据“池达到容量后仍可创建非池化实例完成请求,归还时超出容量的实例会被释放”实现,在“容量是复用上限而不是并发请求硬限制”成立的环境中验证,并为“高峰期上下文构造次数上升”保留可观测证据和回退条件。
查看答案与解析

正确答案D

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“池达到容量后仍可创建非池化实例完成请求,归还时超出容量的实例会被释放”,部署环境满足“容量是复用上限而不是并发请求硬限制”,并能在“高峰期上下文构造次数上升”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

官方资料

当前分类

EF Core 高级选择题

查看全部分类 →
  1. 02EF Core 高级试题 02:跟踪、身份解析与更新模型20 题
  2. 03EF Core 高级试题 03:Include、投影与拆分查询20 题
  3. 04EF Core 高级试题 04:DbContext 池与数据库连接池20 题
  4. 05EF Core 高级试题 05:编译查询与批量更新删除20 题
  5. 06EF Core 高级试题 06:执行策略、事务与保存点20 题
ESC

输入关键词开始搜索