Ich benutze linq um mehrere Tabellen zu verbinden und komplexe Abfragen zu schreiben. Hier, wenn ich '0' als irgendeinen Parameter haben werde, d.h. CategoryId
, GameId
, LimitVariantId
, bedeutet das, dass der Benutzer "All" von der Schnittstelle ausgewählt hat.
Meine Sql-Abfrage, wenn ich Parameterwerte größer als '0' übergebe, ist:
%Vor% Wenn ich CategoryId als 0
übergebe, lautet meine Sql-Abfrage:
Ich muss diese Felder also nicht in die where-Klausel aufnehmen. Dafür hatte ich folgendes LINQ geschrieben:
%Vor%Aber das wird alle Felder aus meiner Datenbank zurückgeben. Kann mir jemand helfen, diese Abfragen in LINQ mit ternärer Bedingung zu schreiben, die die Datensätze meiner gefilterten Felder zurückgibt?
Mit Linq to SQL (mit LINQ im Allgemeinen) können Sie Where
Bedingungen programmgesteuert hinzufügen, wie:
und so weiter.
Außerdem ist es besser, "Typ-Inferenz" (mit dem var
Schlüsselwort) anstelle von dynamic
zu verwenden, damit Sie intellisense nicht mit dynamic
[Bearbeiten]
Der Linq to SQL-Provider gruppiert alle Where
-Bedingungen bei der Übersetzung in SQL
Tags und Links c# linq sql-server-2008