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

EF Core 高级试题 06:执行策略、事务与保存点

101 关于默认事务,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 调用一次 SaveChanges 可以原子覆盖后续所有业务步骤
  • B. 关系数据库提供程序通常让一次 SaveChanges 中的变更在事务内提交
  • C. 跨多次 SaveChanges 或外部操作需要显式事务与一致性设计
  • D. 只要观察到“第二次保存失败留下前一次结果”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案B

正确项给出了默认事务可直接依赖的规则:“关系数据库提供程序通常让一次 SaveChanges 中的变更在事务内提交”。“跨多次 SaveChanges 或外部操作需要显式事务与一致性设计”是应用规则前必须确认的边界,不是规则本身;“调用一次 SaveChanges 可以原子覆盖后续所有业务步骤”则把常见现象或实现细节扩大成了平台保证。场景“第二次保存失败留下前一次结果”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

102 生产环境出现“第二次保存失败留下前一次结果”时,针对默认事务应如何排查?

难度: 进阶

  • A. 直接采用“调用一次 SaveChanges 可以原子覆盖后续所有业务步骤”解释现象,不再收集目标进程和发布配置证据。
  • B. 只增加机器资源或重启进程,以一次恢复结果代替对“跨多次 SaveChanges 或外部操作需要显式事务与一致性设计”的验证。
  • C. 先验证“跨多次 SaveChanges 或外部操作需要显式事务与一致性设计”,再使用运行时指标、日志或最小复现检查“关系数据库提供程序通常让一次 SaveChanges 中的变更在事务内提交”是否成立。
  • D. 只检查代码是否能够编译,通过后便认定“关系数据库提供程序通常让一次 SaveChanges 中的变更在事务内提交”在当前部署中必然成立。
查看答案与解析

正确答案C

“第二次保存失败留下前一次结果”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“跨多次 SaveChanges 或外部操作需要显式事务与一致性设计”,再以“关系数据库提供程序通常让一次 SaveChanges 中的变更在事务内提交”组织证据。采用误区“调用一次 SaveChanges 可以原子覆盖后续所有业务步骤”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

103 评审默认事务相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 调用一次 SaveChanges 可以原子覆盖后续所有业务步骤
  • B. 关系数据库提供程序通常让一次 SaveChanges 中的变更在事务内提交
  • C. 跨多次 SaveChanges 或外部操作需要显式事务与一致性设计
  • D. 遇到“第二次保存失败留下前一次结果”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案A

题目要求找出不成立的判断,“调用一次 SaveChanges 可以原子覆盖后续所有业务步骤”正是默认事务的典型误区。主规则“关系数据库提供程序通常让一次 SaveChanges 中的变更在事务内提交”描述了实现应依赖的契约,边界“跨多次 SaveChanges 或外部操作需要显式事务与一致性设计”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

104 准备上线涉及默认事务的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“调用一次 SaveChanges 可以原子覆盖后续所有业务步骤”完成修改,只要本地运行一次成功就立即发布。
  • B. 按照“关系数据库提供程序通常让一次 SaveChanges 中的变更在事务内提交”修改代码,但不核对“跨多次 SaveChanges 或外部操作需要显式事务与一致性设计”或目标发布模式。
  • C. 只验证“跨多次 SaveChanges 或外部操作需要显式事务与一致性设计”,实现仍继续依赖“调用一次 SaveChanges 可以原子覆盖后续所有业务步骤”这一未经证明的假设。
  • D. 依据“关系数据库提供程序通常让一次 SaveChanges 中的变更在事务内提交”实现,在“跨多次 SaveChanges 或外部操作需要显式事务与一致性设计”成立的环境中验证,并为“第二次保存失败留下前一次结果”保留可观测证据和回退条件。
查看答案与解析

正确答案D

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“关系数据库提供程序通常让一次 SaveChanges 中的变更在事务内提交”,部署环境满足“跨多次 SaveChanges 或外部操作需要显式事务与一致性设计”,并能在“第二次保存失败留下前一次结果”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

105 关于保存点,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 保存点等同于提交事务并释放全部锁
  • B. 提供程序能力和特定配置可能限制保存点,不能假设所有环境一致
  • C. 已有事务中调用 SaveChanges 时,EF Core 可创建保存点并在失败后回滚到该位置
  • D. 只要观察到“并发冲突后在同一事务内修正重试”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案C

正确项给出了保存点可直接依赖的规则:“已有事务中调用 SaveChanges 时,EF Core 可创建保存点并在失败后回滚到该位置”。“提供程序能力和特定配置可能限制保存点,不能假设所有环境一致”是应用规则前必须确认的边界,不是规则本身;“保存点等同于提交事务并释放全部锁”则把常见现象或实现细节扩大成了平台保证。场景“并发冲突后在同一事务内修正重试”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

106 生产环境出现“并发冲突后在同一事务内修正重试”时,针对保存点应如何排查?

难度: 进阶

  • A. 直接采用“保存点等同于提交事务并释放全部锁”解释现象,不再收集目标进程和发布配置证据。
  • B. 先验证“提供程序能力和特定配置可能限制保存点,不能假设所有环境一致”,再使用运行时指标、日志或最小复现检查“已有事务中调用 SaveChanges 时,EF Core 可创建保存点并在失败后回滚到该位置”是否成立。
  • C. 只增加机器资源或重启进程,以一次恢复结果代替对“提供程序能力和特定配置可能限制保存点,不能假设所有环境一致”的验证。
  • D. 只检查代码是否能够编译,通过后便认定“已有事务中调用 SaveChanges 时,EF Core 可创建保存点并在失败后回滚到该位置”在当前部署中必然成立。
查看答案与解析

正确答案B

“并发冲突后在同一事务内修正重试”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“提供程序能力和特定配置可能限制保存点,不能假设所有环境一致”,再以“已有事务中调用 SaveChanges 时,EF Core 可创建保存点并在失败后回滚到该位置”组织证据。采用误区“保存点等同于提交事务并释放全部锁”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

107 评审保存点相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 已有事务中调用 SaveChanges 时,EF Core 可创建保存点并在失败后回滚到该位置
  • B. 提供程序能力和特定配置可能限制保存点,不能假设所有环境一致
  • C. 遇到“并发冲突后在同一事务内修正重试”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
  • D. 保存点等同于提交事务并释放全部锁
查看答案与解析

正确答案D

题目要求找出不成立的判断,“保存点等同于提交事务并释放全部锁”正是保存点的典型误区。主规则“已有事务中调用 SaveChanges 时,EF Core 可创建保存点并在失败后回滚到该位置”描述了实现应依赖的契约,边界“提供程序能力和特定配置可能限制保存点,不能假设所有环境一致”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

108 准备上线涉及保存点的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“已有事务中调用 SaveChanges 时,EF Core 可创建保存点并在失败后回滚到该位置”实现,在“提供程序能力和特定配置可能限制保存点,不能假设所有环境一致”成立的环境中验证,并为“并发冲突后在同一事务内修正重试”保留可观测证据和回退条件。
  • B. 依据“保存点等同于提交事务并释放全部锁”完成修改,只要本地运行一次成功就立即发布。
  • C. 按照“已有事务中调用 SaveChanges 时,EF Core 可创建保存点并在失败后回滚到该位置”修改代码,但不核对“提供程序能力和特定配置可能限制保存点,不能假设所有环境一致”或目标发布模式。
  • D. 只验证“提供程序能力和特定配置可能限制保存点,不能假设所有环境一致”,实现仍继续依赖“保存点等同于提交事务并释放全部锁”这一未经证明的假设。
查看答案与解析

正确答案A

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“已有事务中调用 SaveChanges 时,EF Core 可创建保存点并在失败后回滚到该位置”,部署环境满足“提供程序能力和特定配置可能限制保存点,不能假设所有环境一致”,并能在“并发冲突后在同一事务内修正重试”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

109 关于执行策略重试,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 开启重试后任何数据库错误和业务异常都会无限重试
  • B. 重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行
  • C. 只要观察到“网络短暂中断导致命令失败”,就能把这次现象视为所有环境中的固定行为。
  • D. 执行策略可针对识别出的瞬时故障重试数据库操作
查看答案与解析

正确答案D

正确项给出了执行策略重试可直接依赖的规则:“执行策略可针对识别出的瞬时故障重试数据库操作”。“重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行”是应用规则前必须确认的边界,不是规则本身;“开启重试后任何数据库错误和业务异常都会无限重试”则把常见现象或实现细节扩大成了平台保证。场景“网络短暂中断导致命令失败”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

110 生产环境出现“网络短暂中断导致命令失败”时,针对执行策略重试应如何排查?

难度: 进阶

  • A. 直接采用“开启重试后任何数据库错误和业务异常都会无限重试”解释现象,不再收集目标进程和发布配置证据。
  • B. 只增加机器资源或重启进程,以一次恢复结果代替对“重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行”的验证。
  • C. 先验证“重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行”,再使用运行时指标、日志或最小复现检查“执行策略可针对识别出的瞬时故障重试数据库操作”是否成立。
  • D. 只检查代码是否能够编译,通过后便认定“执行策略可针对识别出的瞬时故障重试数据库操作”在当前部署中必然成立。
查看答案与解析

正确答案C

“网络短暂中断导致命令失败”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行”,再以“执行策略可针对识别出的瞬时故障重试数据库操作”组织证据。采用误区“开启重试后任何数据库错误和业务异常都会无限重试”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

111 评审执行策略重试相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 开启重试后任何数据库错误和业务异常都会无限重试
  • B. 执行策略可针对识别出的瞬时故障重试数据库操作
  • C. 重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行
  • D. 遇到“网络短暂中断导致命令失败”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案A

题目要求找出不成立的判断,“开启重试后任何数据库错误和业务异常都会无限重试”正是执行策略重试的典型误区。主规则“执行策略可针对识别出的瞬时故障重试数据库操作”描述了实现应依赖的契约,边界“重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

112 准备上线涉及执行策略重试的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“开启重试后任何数据库错误和业务异常都会无限重试”完成修改,只要本地运行一次成功就立即发布。
  • B. 依据“执行策略可针对识别出的瞬时故障重试数据库操作”实现,在“重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行”成立的环境中验证,并为“网络短暂中断导致命令失败”保留可观测证据和回退条件。
  • C. 按照“执行策略可针对识别出的瞬时故障重试数据库操作”修改代码,但不核对“重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行”或目标发布模式。
  • D. 只验证“重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行”,实现仍继续依赖“开启重试后任何数据库错误和业务异常都会无限重试”这一未经证明的假设。
查看答案与解析

正确答案B

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“执行策略可针对识别出的瞬时故障重试数据库操作”,部署环境满足“重试单元必须可重放,外部副作用和显式事务要通过策略委托统一执行”,并能在“网络短暂中断导致命令失败”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

113 关于显式事务与重试,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. 手工事务与重试执行策略组合时,应把完整事务放入 CreateExecutionStrategy 执行委托
  • B. 在事务外只重试最后一条命令即可保持完整一致性
  • C. 提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用
  • D. 只要观察到“提交时连接断开无法确认结果”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案A

正确项给出了显式事务与重试可直接依赖的规则:“手工事务与重试执行策略组合时,应把完整事务放入 CreateExecutionStrategy 执行委托”。“提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用”是应用规则前必须确认的边界,不是规则本身;“在事务外只重试最后一条命令即可保持完整一致性”则把常见现象或实现细节扩大成了平台保证。场景“提交时连接断开无法确认结果”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

114 生产环境出现“提交时连接断开无法确认结果”时,针对显式事务与重试应如何排查?

难度: 进阶

  • A. 直接采用“在事务外只重试最后一条命令即可保持完整一致性”解释现象,不再收集目标进程和发布配置证据。
  • B. 只增加机器资源或重启进程,以一次恢复结果代替对“提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用”的验证。
  • C. 只检查代码是否能够编译,通过后便认定“手工事务与重试执行策略组合时,应把完整事务放入 CreateExecutionStrategy 执行委托”在当前部署中必然成立。
  • D. 先验证“提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用”,再使用运行时指标、日志或最小复现检查“手工事务与重试执行策略组合时,应把完整事务放入 CreateExecutionStrategy 执行委托”是否成立。
查看答案与解析

正确答案D

“提交时连接断开无法确认结果”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用”,再以“手工事务与重试执行策略组合时,应把完整事务放入 CreateExecutionStrategy 执行委托”组织证据。采用误区“在事务外只重试最后一条命令即可保持完整一致性”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

115 评审显式事务与重试相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 手工事务与重试执行策略组合时,应把完整事务放入 CreateExecutionStrategy 执行委托
  • B. 提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用
  • C. 在事务外只重试最后一条命令即可保持完整一致性
  • D. 遇到“提交时连接断开无法确认结果”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案C

题目要求找出不成立的判断,“在事务外只重试最后一条命令即可保持完整一致性”正是显式事务与重试的典型误区。主规则“手工事务与重试执行策略组合时,应把完整事务放入 CreateExecutionStrategy 执行委托”描述了实现应依赖的契约,边界“提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

116 准备上线涉及显式事务与重试的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“在事务外只重试最后一条命令即可保持完整一致性”完成修改,只要本地运行一次成功就立即发布。
  • B. 依据“手工事务与重试执行策略组合时,应把完整事务放入 CreateExecutionStrategy 执行委托”实现,在“提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用”成立的环境中验证,并为“提交时连接断开无法确认结果”保留可观测证据和回退条件。
  • C. 按照“手工事务与重试执行策略组合时,应把完整事务放入 CreateExecutionStrategy 执行委托”修改代码,但不核对“提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用”或目标发布模式。
  • D. 只验证“提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用”,实现仍继续依赖“在事务外只重试最后一条命令即可保持完整一致性”这一未经证明的假设。
查看答案与解析

正确答案B

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“手工事务与重试执行策略组合时,应把完整事务放入 CreateExecutionStrategy 执行委托”,部署环境满足“提交结果不确定时还要考虑幂等和状态校验,不能盲目再次执行外部副作用”,并能在“提交时连接断开无法确认结果”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

117 关于跨上下文事务,哪一项准确描述了应依赖的平台契约?

难度: 基础

  • A. TransactionScope 或相同数据库会自动合并所有上下文状态
  • B. 仅使用相同连接字符串不会让两个上下文自动处于同一事务
  • C. 多个 DbContext 共享事务需要共享 DbConnection 并显式使用同一 DbTransaction
  • D. 只要观察到“两个上下文更新需要原子提交”,就能把这次现象视为所有环境中的固定行为。
查看答案与解析

正确答案C

正确项给出了跨上下文事务可直接依赖的规则:“多个 DbContext 共享事务需要共享 DbConnection 并显式使用同一 DbTransaction”。“仅使用相同连接字符串不会让两个上下文自动处于同一事务”是应用规则前必须确认的边界,不是规则本身;“TransactionScope 或相同数据库会自动合并所有上下文状态”则把常见现象或实现细节扩大成了平台保证。场景“两个上下文更新需要原子提交”只能作为排查线索,仍需结合目标框架、发布方式和运行时证据验证。

118 生产环境出现“两个上下文更新需要原子提交”时,针对跨上下文事务应如何排查?

难度: 进阶

  • A. 先验证“仅使用相同连接字符串不会让两个上下文自动处于同一事务”,再使用运行时指标、日志或最小复现检查“多个 DbContext 共享事务需要共享 DbConnection 并显式使用同一 DbTransaction”是否成立。
  • B. 直接采用“TransactionScope 或相同数据库会自动合并所有上下文状态”解释现象,不再收集目标进程和发布配置证据。
  • C. 只增加机器资源或重启进程,以一次恢复结果代替对“仅使用相同连接字符串不会让两个上下文自动处于同一事务”的验证。
  • D. 只检查代码是否能够编译,通过后便认定“多个 DbContext 共享事务需要共享 DbConnection 并显式使用同一 DbTransaction”在当前部署中必然成立。
查看答案与解析

正确答案A

“两个上下文更新需要原子提交”可能由多条路径造成,不能直接证明根因。合理顺序是先确认边界“仅使用相同连接字符串不会让两个上下文自动处于同一事务”,再以“多个 DbContext 共享事务需要共享 DbConnection 并显式使用同一 DbTransaction”组织证据。采用误区“TransactionScope 或相同数据库会自动合并所有上下文状态”、盲目扩容或只看编译结果,都跳过了运行配置与真实调用路径,无法形成可复核的诊断结论。

119 评审跨上下文事务相关实现时,以下哪项判断不成立?

难度: 实战

  • A. 多个 DbContext 共享事务需要共享 DbConnection 并显式使用同一 DbTransaction
  • B. TransactionScope 或相同数据库会自动合并所有上下文状态
  • C. 仅使用相同连接字符串不会让两个上下文自动处于同一事务
  • D. 遇到“两个上下文更新需要原子提交”时,应把可观察证据与平台契约分开记录,再验证二者是否一致。
查看答案与解析

正确答案B

题目要求找出不成立的判断,“TransactionScope 或相同数据库会自动合并所有上下文状态”正是跨上下文事务的典型误区。主规则“多个 DbContext 共享事务需要共享 DbConnection 并显式使用同一 DbTransaction”描述了实现应依赖的契约,边界“仅使用相同连接字符串不会让两个上下文自动处于同一事务”限制了结论的适用范围。生产场景还需要保留指标、日志、跟踪或转储等证据,不能因为一次成功或失败就反转稳定契约。

120 准备上线涉及跨上下文事务的改动时,哪项验收方案最完整?

难度: 实战

  • A. 依据“TransactionScope 或相同数据库会自动合并所有上下文状态”完成修改,只要本地运行一次成功就立即发布。
  • B. 按照“多个 DbContext 共享事务需要共享 DbConnection 并显式使用同一 DbTransaction”修改代码,但不核对“仅使用相同连接字符串不会让两个上下文自动处于同一事务”或目标发布模式。
  • C. 只验证“仅使用相同连接字符串不会让两个上下文自动处于同一事务”,实现仍继续依赖“TransactionScope 或相同数据库会自动合并所有上下文状态”这一未经证明的假设。
  • D. 依据“多个 DbContext 共享事务需要共享 DbConnection 并显式使用同一 DbTransaction”实现,在“仅使用相同连接字符串不会让两个上下文自动处于同一事务”成立的环境中验证,并为“两个上下文更新需要原子提交”保留可观测证据和回退条件。
查看答案与解析

正确答案D

完整验收必须同时覆盖规则、边界和生产证据:实现遵守“多个 DbContext 共享事务需要共享 DbConnection 并显式使用同一 DbTransaction”,部署环境满足“仅使用相同连接字符串不会让两个上下文自动处于同一事务”,并能在“两个上下文更新需要原子提交”出现时定位和回退。其余方案分别依赖错误假设、遗漏环境验证或只检查边界却保留错误实现,均不能证明改动在生产环境中安全。

官方资料

当前分类

EF Core 高级选择题

查看全部分类 →
  1. 04EF Core 高级试题 04:DbContext 池与数据库连接池20 题
  2. 05EF Core 高级试题 05:编译查询与批量更新删除20 题
  3. 06EF Core 高级试题 06:执行策略、事务与保存点20 题
  4. 07EF Core 高级试题 07:并发令牌与冲突处理20 题
  5. 08EF Core 高级试题 08:拦截器、诊断与生产迁移20 题
ESC

输入关键词开始搜索