我找不到构建 EF (4.1) 查询的正确方法,该查询将返回与包含 LEFT JOIN 的 SQL 相同的结果:
SELECT
s.id_service,
s.description,
x.id_service as isDisponible
FROM
role.service_disponible s
LEFT JOIN
role.service_disponible_x_ue x
ON s.id_service = x.id_service AND x.id_ue = 1 and flg_actif = '1'
实际上,我只是想获取服务可分配的完整列表(ServiceDisponible),添加一个字段,告诉我服务是否可分配给特定实体(使用 id_ue 过滤),该信息来自多对多相关表(ServiceDisponibleXUe )。
我的模型是:
理想情况下,我希望这个查询返回这个 viewModel 对象,它基本上是我的 serviceDisponible 域,还有一个字段指示服务的 disponibility。
public ServiceDisponibleViewModel(ServiceDisponible ServiceDisponible, bool isDisponible)
{
this.serviceDisponible = serviceDisponible;
this.isDisponible = isDisponible;
}
到目前为止,我所拥有的是这个查询,但语法无效:
services = context.ServiceDisponible
.Select(a => new ServiceDisponibleViewModel
{
c => new ServiceDisponible
{
id_service = a.id_service,
description = a.description
},
isDisponible = a.ServiceDisponibleXUe
.Any(b => b.flg_actif && b.id_ue == idUe)
}).ToList();