如何使用C#LINQ正确(深入)映射复杂对象?

时间:2015-11-13 20:56:01

标签: c# entity-framework linq

我有一个拥有一对多关系的所有者和车辆表的数据库。我想获取所有车辆详细信息并将每个车主映射到每辆车,但我必须将查询映射到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详细信息:

  

LINQ中仅支持无参数构造函数和初始值设定项   到实体

我已经习惯了Java和LINQ的新手,所以不知道如何正确地做到这一点,任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:3)

它希望你做这样的事情:

Owner = new OwnerBDO() { Id = x.Owner.Id, name = x.Owner.Name},

(我不知道OwnerBDO的属性名称所以我猜对了。)