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