如何使用C#LINQ正确地(深度)映射复杂对象
本文关键字:映射 复杂 对象 深度 何使用 C#LINQ 正确地 | 更新日期: 2023-09-27 18:21:48
我有一个数据库,其中包含一对多关系的车主表和车辆表。我想获得所有车辆的详细信息,并将每位车主映射到每辆车,但我必须将查询映射到BDO。不确定LINQ语法,但我有下面的代码。
using (var databaseContext = new DBConnection()) {
var vehicles = (from Vehicle in databaseContext.Vehicles
select Vehicle);
return vehicles.Select(x => new VehicleBDO() {
Id = x.Id,
// ... more simple data types
Owner = new OwnerBDO(
x.Owner.Id,
x.Owner.Name)
}).ToList();
}
如图所示,创建一个新的所有者BDO会给我一个MethodNotSupportedException
,其中包含详细信息:
LINQ中只支持无参数构造函数和初始化器至实体
我已经习惯了Java和LINQ,所以不知道如何正确地完成它,任何帮助都将不胜感激。
它想让你做这样的事情:
Owner = new OwnerBDO() { Id = x.Owner.Id, name = x.Owner.Name},
(我不知道OwnerBDO的属性名称,所以我猜到了。)