2017-04-01 3 views
-2

Abfrage:beitreten, Gruppe und zählen SQL Linq Umwandlung

SELECT COUNT(*) as Avalied 
FROM LeaveMaster as lm 
JOIN LeaveSubsidary as ls 
ON lm.TransMasterId = ls.TransMasterId 
WHERE lm.SystemCode = 'abc123' AND lm.EmployeeCode = '0014' AND lm.Status ='Approved' 
Group by ls.Leave_Type 

Wie würden Sie die obige SQL-Abfrage zu konvertieren Linq? Thanks :)

Edit:

from p in db.PY_LeaveTransactionMasterTAB.AsEnumerable() 
join e in db.PY_LeaveTransactionSubsidaryTAB.AsEnumerable() on p.LV_TransMasterId equals e.LV_TransMasterId into grp 
where p.SystemCode == SysCode && p.EmployeeCode == EmpCode && p.Status == "Approved" 
group grp by e.Leave_Type // This line is invalid Why? 

Die oben ist, was ich bisher versucht haben, warum nicht kann ich e.Leave_Type oder was ist der richtige Weg group grp by e.Leave_Type zu tun?

+0

Mögliche Duplikat [LINQ - LEFT JOIN, Gruppe nach und Count] (http://stackoverflow.com/questions/695506/linq-left-join-group -by-and-count) – GurV

+0

@GurV Ich habe diesen Link schon gesehen, sieh dir meinen bearbeiteten Teil an. –

Antwort

1

Sie konnten dieses versuchen:

(from p in db.PY_LeaveTransactionMasterTAB 
join e in db.PY_LeaveTransactionSubsidaryTAB on p.LV_TransMasterId equals e.LV_TransMasterId 
where p.SystemCode == SysCode && p.EmployeeCode == EmpCode && p.Status == "Approved" 
group new {p,e} by new {e.Leave_Type } into gr 
select new 
{ 
    Leave_Type = gr.Key.Leave_Type , 
    Count = gr.Count() 
}).ToList(); 
+0

Das ist die Antwort! –