我有兩個表:車輛和工人。聯盟在實體框架
Vehicle(Id, Number)
Workers(Id, Name, ContractorVehicleNumber)
我想寫lambda查詢返回所有的車輛和承包商的車輛。喜歡的東西在SQL:
SELECT Id, Number
FROM Vehicle
UNION
SELECT NULL, ContractorVehicleNumber
FROM Workers
這是我編:
public IQueryable<Vehicle> Get(bool includeContractorVehicles)
{
IQueryable<Vehicle> query = GetQuery();
if (includeContractorVehicles == true)
{
WorkerRepository rep = new WorkerRepository();
IQueryable<Vehicle> contractorsVehicles = rep.GetWirkers().
Select(x => new Vehicle()
{
VehicleNumber = x.ContractorVehicleNumber
});
query = query.Union(contractorsVehicles);
}
return query;
}
但我得到一個異常:
實體或複雜類型 'XXXXXXXX' 不能在構造LINQ to Entities查詢。
我需要整個車輛對象,如果您創建用於投影一個新的特殊類型的前車可鑑只會工作。 Union和Concat有什麼不同? – Naor
'Concat'返回兩個查詢的完整結果,'Union'刪除重複項。 – Magnus