Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - LINQ to SQL Dynamische Abfragen mit Unterabfragen
eraser_seb - Sa 31.03.12 17:12
Titel: LINQ to SQL Dynamische Abfragen mit Unterabfragen
Hallo leute,
Ich beschäftige mich schin ein paar tagen mit LINQ TO SQL aber habe noch so meine Probleme damit.
Ich will mir Dynamisch abfragen basteln.
Beispiel.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| Table<CTabelleDateien> tblDateien = Program.DatenbankVerbindung.GetTable<CTabelleDateien>(); Table<CTabelleDateienSchlagworte> tblDateienSchlagworte = Program.DatenbankVerbindung.GetTable<CTabelleDateienSchlagworte>();
var qDateien = from fDateien in tblDateien where fDateien.ArchivDSN == varArchiFDSN select new { fDateien.DSN, fDateien.ArchivDSN, fDateien.Pfad, fDateien.Name, fDateien.BearbeitungsDatum, fDateien.ErstellDatum, }; if (sSchlagWort.Trim() != "") { } |
Die SQL Anweisung würe ich gern als Linq To Sql anweisungen umzuwandeln, bekomme es aber einfach nicht auf die reihe.
Kann mir jemand von euch mal helfen?
Danke
Th69 - So 01.04.12 11:46
Hallo eraser_seb,
eine SQL-'IN'-Anweisung wird in Linq2SQL andersherum mittels der Contains-Methode umgesetzt, d.h. aus "x IN y" wird:
s.a.
http://wekeroad.com/2008/02/27/creating-in-queries-with-linq-to-sql
Und auch die SQL-'LIKE'-Anweisung kannst du mittels folgender Methoden umsetzen:
- LIKE 'X%': value.StartsWith("X")
- LIKE '%X': value.EndsWith("X")
- LIKE '%X%': value.Contains("X")
Und dann noch mittels der Unterabfrage kombiniert, solle in etwa so aussehen (ungetestet):
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| from fDatei in tblDateien where fDatei.ArchivDSN == varArchiFDSN && (from word in DateienSchlagworte where word.Contains("Text") select word).Contains(fDatei.DSN) select new { } |
P.S. In der 'from'-Klausel sollte der Variablenname in Singular (Einzahl) benutzt werden, also 'fDatei' (anstatt 'fDateien') - da dies analog zu einer 'foreach ... in'-Schleife zu sehen ist.
eraser_seb - So 01.04.12 12:05
Danke schön.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!