gpt4 book ai didi

c# - 使用 NHibernate 的深层复制实体

转载 作者:行者123 更新时间:2023-11-30 13:34:44 25 4
gpt4 key购买 nike

我目前正在工作中开始一个新的 ASP.NET MVC 项目,我们需要生成项目成本估算。

我们正在使用 NHibernate、ASP.NET MVC 1.0 和 StructureMap。

客户希望能够填写项目的所有信息,信息在不同的页面,我们需要在每次回发之间坚持。

客户不希望在完成时有选择以一个名字保存它,但我们希望即使他还没有保存它也能将它持久化在数据库中。所以我们有了创建“草稿模式”的想法,这样用户将开始处理他的项目,将填充所有页面,并在打开“草稿模式”的情况下将其持久保存在数据库中。

但是我们需要管理草稿,我的意思是,当用户开始编辑现有项目时,我们需要创建它的副本,将对象及其所有子对象设置为草稿模式并创建它的副本在我们的数据库中。我们需要更改子项的所有引用。

因此,我正在尝试找到深度复制对象并更改所有引用的最佳方法,我宁愿不必为我必须复制的每个实体创建一个复制类,如果可能的话,也许可以创建更通用的东西。

如果您需要更多详细信息或不清楚的地方,请告诉我。

谢谢,

查尔斯

最佳答案

我会尝试让我的域解决这个问题,让 NHibernate 只保存数据而不是复制数据。我将创建一个定义 DeepCopy() 方法的 IDeepCopy 接口(interface)。然后在这些方法中的每一个中,您将创建一个新对象并自己复制值并控制您希望如何正确处理子对象或父对象。

关于c# - 使用 NHibernate 的深层复制实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299932/

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