Was genau macht LinqToSql bei der Ausführung dieser Abfrage?

03/02/2010 - 19:38 von Georg Gungl | Report spam
Hallo NG,

habe über LINQPad die folgende Abfrage gegen LinqToSql-DataContext
ausgeführt:

var ubPreise = from up in ubVar.ArUnterkunftPreisePauschalpreisBasis
where (((up.GueltigVon <= ubVar.Ankunft) && (up.GueltigBis >ubVar.Ankunft)) ||
((up.GueltigVon >= ubVar.Ankunft) && (up.GueltigVon <= ubVar.Abreise)))
select up;
ubPreise.Dump("UNTERKUNFT-PREISE-PAUSCHALPREISBASIS");

Die SQL-Ansicht (laut LINQPad) dazu:

SELECT [t0].*
FROM [id2].[ArUnterkunftPreisePauschalpreisBasis] AS [t0]
WHERE ([t0].[Mandant] = @p0) AND ([t0].[AnfCode] = @p1) AND
([t0].[BuchungsCode] = @p2) AND ([t0].[BefoerderungCode] = @p3) AND
([t0].[KatalogCode] = @p4) AND ([t0].[Zimmerart] = @p5) AND
([t0].[Verpflegung] = @p6) AND ([t0].[Zimmerzusatz] = @p7) AND
([t0].[BelegungsGueltigkeitCode] = @p8)

Mein Problem:
Da fehlen ja noch meine Datumsbereiche aus der WHERE-Bedingung.
Heißt es, dass diese erst beim Client im Arbeitsspeicher angewendet werden?!
Das wàre (in diesem Fall) fatal: 20.000++ Datensàtze vom Server holen um die
passende 3 zu filtern und das in einer Schleife =:-O

Wie kann sonst noch prüfen\steuern, was _GENAU_ Serverseitig selektiert
wird?

Danke!

Ciao:
GG ;-)

*dernach12hArbeitgenugvomTaghat*
 

Lesen sie die antworten

#1 Elmar Boye
04/02/2010 - 09:42 | Warnen spam
Hallo Georg,

"Georg Gungl" schrieb ...
habe über LINQPad die folgende Abfrage gegen LinqToSql-DataContext ausgeführt:

var ubPreise = from up in ubVar.ArUnterkunftPreisePauschalpreisBasis
where (((up.GueltigVon <= ubVar.Ankunft) && (up.GueltigBis >> ubVar.Ankunft)) ||
((up.GueltigVon >= ubVar.Ankunft) && (up.GueltigVon <= ubVar.Abreise)))
select up;
ubPreise.Dump("UNTERKUNFT-PREISE-PAUSCHALPREISBASIS");

Die SQL-Ansicht (laut LINQPad) dazu:

SELECT [t0].*
FROM [id2].[ArUnterkunftPreisePauschalpreisBasis] AS [t0]
WHERE ([t0].[Mandant] = @p0) AND ([t0].[AnfCode] = @p1) AND
([t0].[BuchungsCode] = @p2) AND ([t0].[BefoerderungCode] = @p3) AND
([t0].[KatalogCode] = @p4) AND ([t0].[Zimmerart] = @p5) AND
([t0].[Verpflegung] = @p6) AND ([t0].[Zimmerzusatz] = @p7) AND
([t0].[BelegungsGueltigkeitCode] = @p8)

Mein Problem:
Da fehlen ja noch meine Datumsbereiche aus der WHERE-Bedingung.



Ich habe doch Zweifel, dass der Output der richtige ist.
Gehe mal den direkteren Weg und nutze die Debug-Möglichkeiten
die LinqToSql von Haus aus hat:

http://www.davidhayden.com/blog/dav...indow.aspx

http://weblogs.asp.net/scottgu/arch...lizer.aspx

Gruß Elmar

Ähnliche fragen