gpt4 book ai didi

c# - EntityFramework 在给定时间保存数据库的 "frozen image"

转载 作者:搜寻专家 更新时间:2023-10-30 21:50:30 25 4
gpt4 key购买 nike

我有以下数据库结构:

schema fullsize

发票表是我的麻烦所在。场景:第 1 个月:用户购买产品、制作和参加事件以及付款。这些被保存到数据库中。我想在本月的最后一天为每个用户开具账单/发票。此发票已创建并保存。第 2 个月:每种产品的价格都发生了变化,第 1 个月的事件也发生了变化。一些付款被删除。当我查找第 1 个月的发票时,数据将与我创建它时不同,因为这些值只是指向其他表中数据的指针。

我想要的:创建数据库的不可更改的“图像”,其中对其他表的更改不会影响发票。必须直接更改发票。

我尝试过/正在尝试的:

  1. 简单地列出 Invoice 类中的每个实体。保存到数据库时提供外键约束 - 我是否应该以某种方式强制它在同一个表中创建一个具有新键和发票外键的新实体?

  2. 使子类从父类(super class)和子表继承到具有通用 InvoiceId 的付款/购买/产品/事件关系/事件,为每张新发票创建新实体。

这里对我来说最好的解决方案是什么?

最佳答案

我认为您最好的选择是对发票表进行非规范化。

规范化的优点是通过模型改变“波纹”。但您不希望这种情况发生在您的发票上。

因此,删除所有您不想间接影响发票的导航属性,并在发票内为您要保存的每个值创建一个字段。

关于c# - EntityFramework 在给定时间保存数据库的 "frozen image",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25471994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com