Tôi có hai bảng: Xe và Công nhân.Công đoàn trong khuôn khổ pháp nhân
Vehicle(Id, Number)
Workers(Id, Name, ContractorVehicleNumber)
Tôi muốn viết truy vấn lambda để trả lại tất cả các phương tiện và phương tiện thầu. Một cái gì đó giống như trong sql:
SELECT Id, Number
FROM Vehicle
UNION
SELECT NULL, ContractorVehicleNumber
FROM Workers
Đây là những gì tôi đã làm:
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;
}
Nhưng tôi nhận được một ngoại lệ:
Thực thể hoặc loại phức tạp 'XXXXXXXX' không thể được xây dựng trong một Truy vấn LINQ to Entities.
tôi cần những đối tượng toàn bộ xe. Sự khác biệt giữa Union và Concat là gì? – Naor
'Concat' trả về kết quả đầy đủ của cả hai truy vấn,' Union' loại bỏ các bản sao. – Magnus