gpt4 book ai didi

c# - DAL Datamapper 持久化胖对象

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:54 25 4
gpt4 key购买 nike

我正在重写我们的应用程序。我们正在构建 DataMappers 以在我们的 DAL 中工作。我的问题涉及到我有一个来自 BLL 的复杂对象被传递给要持久化的 DataMapper 的情况。

假设这个对象有很多属性,包括其他对象的列表。

即...

public class Customer
{
public String name;
public String age;
public String ShoeSize;
public List<Address> a;
public List<Orders> o;
{

在“年龄”可能是 BLL 中唯一更新的字段的情况下。

将其保存到数据库的最佳做法是什么?

你会坚持整个结构吗?或者我如何构建它以便我的 DataMapper 知道哪些字段发生了变化,这样我就不必更新数据库中的整个结构?我想我可以为每个属性设置某种 IsDirty 字段,但这很快就会变得一团糟。

谢谢,

兆瓦

最佳答案

如果您将原始对象保留在内存中并传入一个包含更改的新“版本”,您可以检查新对象的更改并仅保存它。

public class CustomerMapper {
// ...
public void Update(Customer original, Customer update)
{
// check each property for changes
}
// ...
}

更新后,您用新对象替换原始对象。但如果您有多个线程,请注意并发问题。

关于c# - DAL Datamapper 持久化胖对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4027489/

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