Tengo dos tablas: Vehículos y Trabajadores.Unión en el marco de la entidad
Vehicle(Id, Number)
Workers(Id, Name, ContractorVehicleNumber)
me gustaría escribir consulta lambda para devolver todos los vehículos y los vehículos de contratistas. Algo así como en SQL:
SELECT Id, Number
FROM Vehicle
UNION
SELECT NULL, ContractorVehicleNumber
FROM Workers
Esto es lo que hice:
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;
}
pero me da una excepción:
La entidad o complejo 'XXXXXXXX' tipo no puede ser construido en una Consulta LINQ a Entidades.
necesito todo el objeto del vehículo. ¿Cuál es la diferencia entre Union y Concat? – Naor
'Concat' devuelve el resultado completo de ambas consultas,' Union' elimina los duplicados. – Magnus