Ich brauche einige syntaktische Hilfe mit einer Linq-Anweisung. Die Gesamtaussage ist lang und wählt gegen eine SQL Server-Datenbank aus, über die ich keine Entwurfskontrolle habe.Null, wenn Null in Linq Wählen
In meinem ausgewählten neuen Satz habe ich die folgende Spalte;
on_Hand_Qty1 = (from x1 in Material_Locations
where x1.Material == j.Part_Number
&& x1.Location_ID != "MSSICONSMT"
select x1.On_Hand_Qty ?? 0.0).Sum()
,
In LINQPad bekomme ich einen Fehler von: Operator '??' kann nicht auf Operanden vom Typ 'double' und 'double' angewendet werden
Ich benutze das ?? weil es möglich ist, dass die Unterabfrage keine Datensätze zurückgibt. In diesem Fall sollte der Wert Null sein.
Ich habe versucht, den Wert auf (double) und (double?) Zu werfen, aber ich bekomme immer noch effektiv den gleichen Fehler. j
Ich mache eine ähnliche sub auf eine Spalte an anderer Stelle in der Aussage und es funktioniert gut;
Consignment = (from x in Material_Locations
where x.Material == j.Part_Number
&& x.Location_ID == "MSSICONSMT"
select(float?) x.On_Hand_Qty ?? 0.0).ToList()
Was fehlt mir hier?
Danke!
Sie wenden '?? 'auf eine Zeile an. Wenn die Abfrage keine Zeilen zurückgibt, konvertiert sie das Fehlen von Zeilen nicht in eine Null. – GSerg