これは私のクエリです、それは正常に動作し、私に期待される結果を与える;唯一の問題は、それがそのようになってしまいますので、86個のフィールドは、より多くの(笑)あるあるlinqクエリで特定のフィールドの数を
var result2 = (from dt in disMudahaleTipiRepo
join dm in disMudahaleRepo on dt.Kodu equals dm.MudahaleKodu
join kr in kurumRepo on dm.CreatedKurumKodu equals kr.KurumKodu
join yu in userRepo on dm.CreatedBy equals yu.ID
group dt by new { yu.Ad, yu.Soyad, kr.KurumAdi } into grp
select new
{
AdSoyAd = grp.Key.Ad + " " + grp.Key.Soyad,
KurumAdi = grp.Key.KurumAdi,
KoduSayisi1 = grp.Select(s => s.Kodu).Where(w=>w== "401.030").Count(),
KoduSayisi2 = grp.Select(s => s.Kodu).Where(w=>w== "402.090").Count(),
KoduSayisi3 = grp.Select(s => s.Kodu).Where(w=>w== "406.020").Count(),
KoduSayisi4 = grp.Select(s => s.Kodu).Where(w=>w== "402.020").Count(),
KoduSayisi5 = grp.Select(s => s.Kodu).Where(w=>w== "406.070").Count()
...
});
:
...
select new
{
AdSoyAd = grp.Key.Ad + " " + grp.Key.Soyad,
KurumAdi = grp.Key.KurumAdi,
KoduSayisi1 = grp.Select(s => s.Kodu).Where(w=>w== "401.030").Count(),
...
KoduSayisi91 = grp.Select(s => s.Kodu).Where(w=>w== "436.070").Count()
});
の代わりにこれをやって、私は辞書を作成し、(コードとして維持しようとしました、Number)理論では良いが、どのようにlinqにこれを伝えることができますか?
エンティティの定義はここでは必要ではないと私は分かち合うと思います。
あなたはサブクエリを使用することを試みることができるが、私は次のような作品かどうかをテストするために手元にデータベースを持っていないpublic class DisMudahaleTipi : Entity
{
public string Kodu { get; set; }
public string Name { get; set; }
}
public class DisMudahale : AuditableEntity
{
public string MudahaleKodu { get; set; }
}
あなたのケースは動的ピボットクエリのケースだと思います。あなたはlinqを使うことはできません。以下を参照してください:https://www.mssqltips.com/sqlservertip/2783/script-to-create-dynamic-pivot-queries-in-sql-server/希望すること –
なぜあなたは '.Kodu'をインクルードできませんか?あなたのグループに 'group dt by new {yu.Ad、yu.Soyad、kr.KurumAdi、dt.Kodu}をgrp'のようにグループ化します。 – Vikhram
私はこれがLinq2EntitiesでLinq2Objectsではないと仮定していますか? – Toxantron