Gibt es eine Möglichkeit, eine linq-Abfrage zu schreiben, die zu einem Ergebnis führt?
Nein. Als Erstes müssen Sie angeben, was Sie benötigen. Als Beispiel können Sie in T-SQL
Folgendes verwenden:
COUNT(*)
zählt die Zeilen in Ihrer Tabelle COUNT(column)
zählt die Einträge in einer Spalte und ignoriert Nullwerte. Wenn Sie zählen müssen, wie viele Zeilen Sie haben, verwenden Sie einfach
%Vor% Wenn Sie sehen möchten, wie viele Entitäten Sie haben, wenn eine bestimmte Spalte nicht null ist, verwenden Sie eine Filterüberladung von Count
method.
Nein, das ist nicht möglich. Es gibt keinen Unterschied zwischen Performance und Count(*)
oder'Count (Id) , even more if your
Id 'ist der Primärschlüssel.
Ich habe hier ein Experiment mit einer Tabelle mit mehr als einer Million Tupel gemacht. Siehe den Ausführungsplan beider Abfragen. Der erste ist der select count(*)
und der zweite ist select count(id)
. Der id
ist der Primärschlüssel (die Ergebnisse sind leider in Portugiesisch-Brasilien):
Um die gleiche Funktion wie SQL Count(Id)
auszuführen, können Sie LINQ GroupBy verwenden und anschließend jede Gruppe auswerten. Hier ist ein kurzer, vollständiger Ausschnitt:
Was wird ausgegeben:
%Vor%Eine Möglichkeit,
zu bekommenWählen Sie Anzahl (Id) von tbl1
wäre
%Vor% Das obige Where
soll null
-Werte vermeiden. Wenn sie auch gezählt werden sollen, muss Where
eliminiert und Select
angepasst werden, um null
-Einträge zu berücksichtigen.
Zusätzlich, wenn Sie nicht nur bestimmte Werte zählen möchten, können die Teile Select
und Distinct
ignoriert werden.