LEFT JOIN を含むこの SQL と同じ結果を返す EF (4.1) クエリを作成する正しい方法が見つかりません。
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 ドメインであり、サービスの無効性を示すもう 1 つのフィールドがあります。
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();