Ich versuche, eine Linq-Abfrage für eine meiner Dashboard, die Daten basierend auf einigen Bedingungen abruft. Ich möchte die Anzahl der Datensätze basierend auf dem in meiner Tabelle verfügbaren Status anzeigen.Gruppierung auf virtuelle (vordefinierte) Spalte in linq
Folgendes ist die SQL-Abfrage, in der ich versuche, in Linq zu konvertieren.
select count(id) cnt, 'Available' label from table where date = sysdate
Die obige Abfrage gibt das Ergebnis unter DB IDE zurück. Dies ist das Ergebnis, das ich mit Linq will
cnt label
0 Available
Ich habe versucht, mit folgenden Linq-Abfrage, aber es kehrt 0 Zahl und somit zur Folge haben wird, nicht abgerufen werden.
var data = (from a in context
where a.date = System.DateTime.Now
group a in a.id into g
select new {
cnt = g.Count(),
label = 'Available'
}).ToList();
Wie erreiche ich oben genannten Ergebnis in linq. Ihre Hilfe wird geschätzt.
Dank
------------- ---------------- EDIT aktualisiert LINQ-Abfrage
var data = (from a in context.TableA
where a.id = uniqueID
group a in a.id into g
select new {
cnt = g.Count(),
label = 'Available'
}).Concat(from a in context.TableB
where a.id = uniqueID
group a in a.id into g
select new {
cnt = g.Count(),
label = 'WIP'
}).ToList();
Sie haben keine Where-Klausel auf Ihrer SQL-Abfrage, aber dann in Ihrem Linq, und ich bezweifle, dass Ihre Tabellen Datum Spalte ist die gleiche wie die aktuelle DateTime.Now (Ich kann garantieren, ist es nicht). Entferne das 'wo' von deiner linq. – Dispersia
Möchten Sie die Anzahl der Elemente in Daten mit einer bestimmten ID zählen oder die Anzahl der eindeutigen IDs in Daten zählen? –
@Dispersia - Ich habe die SQL-Abfrage aktualisiert. Bitte beziehen Sie sich auf eine aktualisierte. Trotzdem gibt es 1 Zeile in der DB IDE zurück, aber nicht mit linq. FYI, ich brauche das, wo Bedingung für das Filtern des Ergebnisses. Danke – user968441