ich die nächste Frage haben:Entity Framework Gruppierung für Spalte von beitreten
select VisitLines.ProcedureId, COUNT(DISTINCT VisitLines.VisitId) as nt
from Visits
LEFT JOIN VisitLines ON Visits.Id = VisitLines.VisitId
WHERE Visits.VisitStatusId = 1 AND Visits.IsActive = 1 AND VisitLines.IsActive = 1
GROUP BY VisitLines.ProcedureId
Haupt Frage: Ist Fähigkeit von Spalte Gruppierung besteht aus der Verbindung mit Linq? Ich frage mich, wie man es mit der Spalte "Sammlung" macht.
Kann EF gezwungen werden, COUNT (Spalte DISTINCT) zu generieren? IQueryable.GroupBy.Select (x => x.Select (n => n.Number) .Distinct(). Count()) erzeugen Abfrage mit wenigen Unterabfragen die viel langsamer dann COUNT (DISTINCT)
über 2: Ich habe nicht gefunden, wie COUNT (DISTINCT-Spalte) zu generieren, aber den Weg gefunden, wie effizientere Abfrage generieren dann mit linq: IQuarable.GroupBy (x => new { x.Id, x.Number}). GroupBy (x => x.Key.Id) .Wählen Sie (x => new {x.Key, Count = x.Count}) es generiert GroupBy mit nur einer Unterabfrage ' select distinct ', das ist effizienter als die Abfrage von Standard Linq Ansatz Dictinct(). Count(). Aber ich möchte immer noch wissen, ob es möglich ist, sql COUNT (DISTINCT Spalte) zu generieren – Itan