我有一个数据库,其中包含具有一对多关系的所有者和车辆表。我想要获取所有车辆详细信息并将每个车主映射到每辆车,但我必须将查询映射到 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();
}
如图所示创建一个新的ownerBDO会给我一个MethodNotSupportedException
,其中包含详细信息:
Only parameterless constructors and initializers are supported in LINQ to Entities
我习惯了 Java,对 LINQ 还很陌生,所以不知道如何正确地做到这一点,任何帮助将不胜感激。
最佳答案
它希望你做这样的事情:
Owner = new OwnerBDO() { Id = x.Owner.Id, name = x.Owner.Name},
(我不知道 OwnerBDO 的属性名称,所以我猜测。)
关于c# - 如何使用 C# LINQ 正确(深度)映射复杂对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33701613/