Heim > Backend-Entwicklung > C++ > Wie kann ich SQL-CASE-Anweisungen mit LINQ replizieren?

Wie kann ich SQL-CASE-Anweisungen mit LINQ replizieren?

Susan Sarandon
Freigeben: 2024-12-29 03:50:13
Original
419 Leute haben es durchsucht

How Can I Replicate SQL CASE Statements Using LINQ?

LINQ-Implementierung von CASE-Anweisungen

In LINQ können Sie bedingte Anweisungen verwenden, um die Funktionalität von CASE-Anweisungen in SQL zu simulieren. Sehen wir uns ein konkretes Beispiel an:

osc_products.products_quantity =
CASE 
   WHEN itempromoflag <> 'N' THEN 100000
   WHEN itemcat1 IN ('1','2','31') AND itemsalestatus = 'S' THEN 100000
   WHEN itemsalestatus = 'O' THEN 0
   ELSE cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted 
END  
Nach dem Login kopieren

Um diese CASE-Anweisung in LINQ zu konvertieren, können Sie den folgenden Ansatz verwenden:

// Linq syntax
var query = from items in db.cdsItems
            where items.ItemHandHeldFlag.Equals("Y") && 
            items.ItemQtyOnHand - items.ItemQtyCommitted > 0
            select items;

// Alternate lambda syntax with expression body
var query2 = db.cdsItems
    .Where(items => items.ItemHandHeldFlag.Equals("Y") && 
            (items.ItemQtyOnHand - items.ItemQtyCommitted > 0))
    .Select(items => items);
Nach dem Login kopieren

Diese Abfrage simuliert effektiv das Verhalten der CASE-Anweisung und aktualisiert die Lagerbestandsstatus von der Produktion bis zur Handelsseite wie vorgesehen.

Beachten Sie, dass LINQ im Vergleich zur Verwendung eine präzisere und wartbarere Möglichkeit zur Handhabung bedingter Anweisungen bietet CASE-Anweisungen in SQL. Es ermöglicht Ihnen, eine einzige Anweisung zu verwenden, um mehrere Bedingungen auszuwerten und die gewünschte Ausgabe zu erzeugen.

Das obige ist der detaillierte Inhalt vonWie kann ich SQL-CASE-Anweisungen mit LINQ replizieren?. 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