2015-11-13 64 views
2

我有一個與所有者和車輛表的數據庫與一對多的關係。我想獲取所有車輛詳細信息並將每個車主映射到每輛車,但我必須將查詢映射到BDO。不確定LINQ語法,但我有下面的代碼。如何正確(深)用C#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

你用'VehicleBDO'做同樣的事情:使用無參數的構造函數和屬性設置器。 – Jon

回答

3

它要你做這樣的事情:(我不知道OwnerBDO屬性名稱,所以我猜)

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

+0

所以你不需要帶對象初始值設定項的圓括號。 – CodeNotFound

+1

當你意識到答案是多麼明顯時,這種可怕的恥辱。非常感謝你。也向Jon致謝。 – Gary

+0

@GaryM如果你仔細閱讀錯誤信息,你將會做什麼以及在Google上搜索什麼=>「對象初始值設定項」,「無參數」c# – CodeNotFound