0
私は、このSQLコードを持っている:LINQ - 左参加し、グループ化、合計、
select A.Recurso_Id, sum(case when B.cita_id is null then 0 else 1 end) as Total_Eventos,
a.Recurso_Nombre, a.Recurso_Email,a.Recurso_Activo
from Agenda_Recurso a left join Agenda_Cita B
on A.Recurso_Id=B.Recurso_Id
group by A.Recurso_Id,a.Recurso_Nombre, a.Recurso_Email,a.Recurso_Activo
そして、私は実際に私はこのコードを持って、きゅうにtraslateする必要があります。
List<Select> _ListaSelect = (from R in _LstRecursos
join C in _LstCitas
on R.Id equals C.Recurso_Id
group R by new {C.Recurso_Id, R.Nombre} into total
select new Select()
{
Cantidad_Eventos = total.Sum(R=> R.Id),
Recurso_Nombre= total.Max(R=> R.Nombre),
Recurso_Email=total.Max(R=>R.Email),
Recurso_Activo=total.Max(R=>R.Activo),
Id_Recurso=total.Max(R=>R.Id)
}).ToList();
しかし、それは動作しません。手伝って頂けますか?私はあなたのクエリは非常に簡単になることができると思い
どのように*動作していないかを説明してください。 –
LINQ 'join'はデフォルトで内部結合を使用します。 SQLクエリでは、左結合が使用されます。そういうわけで、あなたは別の結果を得ています。 LINQの左外部結合を取得するには、x.DefaultIfEmpty()のパターンから 'join ... in ... on ...をxから... into 'パターンにする必要があります。 – MarcinJuraszek
この場合、Resource_Idから来るすべてのものを追加して、どのようなアポイントメントにリソースが関連付けられているかを知りたいのですが、それはリソース番号をすべて追加することです。 – Broodwing009