Heim > Datenbank > MySQL-Tutorial > Wie repliziere ich die „IN'-Anweisung von SQL mit LINQ?

Wie repliziere ich die „IN'-Anweisung von SQL mit LINQ?

Patricia Arquette
Freigeben: 2024-12-30 21:32:11
Original
881 Leute haben es durchsucht

How to Replicate SQL's

LINQ-Äquivalent der „IN“-Anweisung von SQL

In diesem Artikel befassen wir uns mit der Aufgabe, eine LINQ-Abfrage zu schreiben, die die emuliert Verhalten der SQL-Anweisung „IN“. Diese Abfrage ruft Elemente ab, die einer angegebenen Liste von Tags entsprechen.

Stellen Sie sich das folgende Datenbankschema vor, das Elemente unterstützt Tagging:

Artikel

  • ItemId
  • Marke
  • Name
  • Preis
  • Zustand
  • Beschreibung
  • Aktiv

Tag s

  • TagId
  • Name
  • Aktiv

TagMap

  • TagMapId
  • TagId
  • ItemId
  • Aktiv

Problem Anweisung:
Schreiben Sie eine LINQ-Abfrage, die Elemente zurückgibt, die einer angegebenen Liste von Tags entsprechen. Wenn die gewünschten Tags beispielsweise 2, 3, 4 und 7 sind, sollte die Abfrage Elemente mit diesen Tags abrufen.

Lösung:
Dies können wir wie folgt erreichen LINQ-Abfrage:

var TagIds = new[] { 2, 3, 4, 7 };
var q = from map in Context.TagMaps
where TagIds.Contains(map.TagId)
select map.Items;
Nach dem Login kopieren

Die Abfrage initialisiert zunächst ein ganzzahliges Array TagIds mit den gewünschten Tag-IDs. Anschließend wird die TagMaps-Tabelle mit diesem Array mithilfe der Methode „Contains“ verknüpft, die prüft, ob die TagId-Spalte von TagMaps im TagIds-Array vorhanden ist.

Diese Abfrage generiert eine parametrisierte „IN“-Klausel in der SQL-Anweisung und sorgt so für Effizienz Ausführung. Es lässt sich im Wesentlichen wie folgt übersetzen:

SELECT Items
FROM TagMaps
WHERE TagId IN (2, 3, 4, 7);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie repliziere ich die „IN'-Anweisung von SQL mit LINQ?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage