如何在不制作新的情况下将一个对象分配给LINQ C#中的另一个对象



我在将一个对象分配给LINQ中的一个对象到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();

我正在制作新的并分配对象,但是我不想这样做,这会在插入中引起问题。我想在不制作新对象的情况下分配,这是怎么可能的?

乔恩·斯基特(Jon Skeet)和马克·格雷维尔(Marc Gravell)有一个名为Miscutil的库。在MiscUtil内部。反射有一个名为PropertyCopy的类,它可以准确地做您描述的。它仅适用于.net 3.5。

它通过在源型的公共属性上运行,用名称与目标类型的公共属性相匹配,确保可以将每个属性从源到目标分配,然后创建和缓存复印机函数对于这两种类型(因此,您不会每次都进行所有这些反思)。我在生产代码中使用了它,可以保证其优点。

检查此帖子中是否有一个代码示例。

相关内容