如何使用linq复制公共基本属性
本文关键字:属性 何使用 linq 复制 | 更新日期: 2023-09-27 18:06:22
我有2个不同的子类。主要原因是数据库字段与进入Gui的字段不同。所以它们都有共同的父类。
Class DbChild1 : Parent1
{ ....
}
Class GuiChild1 : Parent1
{....
}
我有一个DbChild1的IEnumerable结果集。我正试图使用Linq来复制数据。但是,由于确实有很多属性,我在不止一个地方为其他类似的DBclass和Gui类这样做,我想知道是否有任何快捷方式来复制共同的父属性,而不是一个接一个地复制。
事先感谢你的帮助。
欢呼
如果你还没有检查过AutoMapper,你可以试试这个:
class Program
{
static void Main(string[] args)
{
var dbChild1ResultSet = new[]
{
new DbChild1()
{
Field1 = "1",
Field2 = "2",
DbChild1Field1 = "3"
},
new DbChild1()
{
Field1 = "11",
Field2 = "22",
DbChild1Field1 = "33"
},
};
var guiChild1ResultSet = dbChild1ResultSet.Select(x => new GuiChild1(x)
{
GuiChild1Field1 = x.DbChild1Field1
});
}
}
public class Parent1
{
public string Field1 { get; set; }
public string Field2 { get; set; }
public Parent1()
{
}
public Parent1(Parent1 toCopyFrom)
{
Field1 = toCopyFrom.Field1;
Field2 = toCopyFrom.Field2;
}
}
public class DbChild1 : Parent1
{
public string DbChild1Field1 { get; set; }
public DbChild1()
{
}
public DbChild1(Parent1 toCopyFrom) : base(toCopyFrom)
{
}
}
public class GuiChild1 : Parent1
{
public string GuiChild1Field1 { get; set; }
public GuiChild1()
{
}
public GuiChild1(Parent1 toCopyFrom) : base(toCopyFrom)
{
}
}