1

我在 Linq to SQL 中将一个对象分配给另一个对象时遇到了问题。在这个例子中:

Func<result, result> make = q => new result
{
    Id = q.Id,
    lName = q.lName,
    GroupId = q.GroupId,
    Age = (from tags in q.age where tags.Del == null && tags.lId == q.Id select age).ToEntitySet(),

};

p = (from q in dc.results
        where q.Id == Id.Value
        select make(q)).First();

我正在新建并分配对象,但我不想这样做,它会导致插入问题。我想在不创建新对象的情况下进行分配,这怎么可能?

4

1 回答 1

1

Jon Skeet 和 Marc Gravell 有一个名为MiscUtil的库。在MiscUtil.Reflection 内部有一个名为的类PropertyCopy,它完全符合您的描述。它仅适用于 .NET 3.5。

它通过运行 SourceType 的公共属性,按名称将它们与 TargetType 的公共属性匹配,确保每个属性都可以从源分配到目标,然后为这两个创建和缓存复制功能类型(因此您不必每次都进行所有这些反思)。我已经在生产代码中使用了它,并且可以保证它的优点。

查看这篇文章以获取代码示例

于 2012-10-26T05:00:44.880 回答