You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET中如何使估算调用的预算数据不受原预算修改影响?

ASP.NET预算与估算数据隔离方案实现

核心机制

采用快照式副本存储,为每个估算实例生成独立的预算数据快照,快照一经创建便固定不变,彻底切断原预算数据变更对估算的影响。

具体实现步骤

  • 快照触发时机:用户在估算模块选定关联预算数据的瞬间,立即执行快照生成操作,确保获取的是当前时刻的预算数据状态。
  • 副本表设计:
    • 创建独立的EstimateBudgetSnapshot表,字段结构与原预算表(如Budget)完全匹配,额外新增EstimateId字段用于关联对应的估算记录。
    • 执行快照插入时,直接将选中预算条目的所有字段值复制到EstimateBudgetSnapshot表,保证数据完全复刻。
  • 数据读取逻辑:估算模块所有涉及预算数据的展示、计算场景,均从EstimateBudgetSnapshot表读取,不再直接访问原Budget表。

效果验证示例

原预算表Budget数据:Column A = "A",Column B = 1
估算选择该预算条目后,EstimateBudgetSnapshot新增记录:EstimateId = 1001,Column A = "A",Column B = 1
后续修改原Budget表中"A"对应的Column B值为2,估算模块读取快照数据仍返回Column B = 1,不受原数据变更影响。

优化建议

  • 按需复制:仅复制估算实际关联的预算条目,避免全量复制造成的存储冗余。
  • 事务保障:将估算记录创建与快照插入操作封装在同一事务中,确保数据一致性,防止出现有估算无对应快照的异常情况。
  • 索引优化:为EstimateBudgetSnapshot表的EstimateId字段建立索引,提升估算模块读取快照数据的查询性能。

内容的提问来源于stack exchange,提问作者plet9090

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:41:02