Linq到SQL将DataObject从一个DataClass移动到另一个DataClass,保持结构.你好

本文关键字:DataClass 另一个 移动 你好 结构 一个 DataObject SQL Linq | 更新日期: 2023-09-27 18:19:37

不止一次遇到问题。

我在DataContext中使用了一个Linq DataClass。在加载程序运行完之后,有时需要将一个对象移动到另一个具有相同结构的DataClass。

因此,例如产品和产品历史记录,每次产品发生变化后,实际产品都会被放入产品历史记录中。

在不编写这样的转换函数的情况下,我如何简化此操作:

private static ProductHistory convert(Product p)
    {
        ProductHistory ph = new ProductHistory();
        ph.Attr1 = p.Attr1;
        ph.Attr2 = p.Attr2;
        //...and hundreds like this on...
        return ph;
    }

我不想像DataContexts所支持的那样执行SQL查询。

任何提示都很好,

提前感谢

Harry

Linq到SQL将DataObject从一个DataClass移动到另一个DataClass,保持结构.你好

反射将是自动的唯一方法

通过反射,您必须探索源对象的所有属性。查找目标对象的各自属性。然后复制值

//pseudo-code 
//something like this 
TargetInstance target = new TargetInstance();
foreach(Property sourceProperty in sourceinstance)
{
    if(target contains sourceProperty)
    {
        target[SourceProperty] = sourceInstance[SourceProperty];
    }    
}

看看这个问题,它类似于您的场景

对于这类事情,我会考虑使用AutoMapper。。。