Linq Ergebnismenge dynamisch einschränken - Geht das?

02/09/2009 - 16:18 von Georg Gungl | Report spam
Hallo NG,

ich habe eine reihe von Filterbedingungen, welche gesetzt sind oder nicht.

Wei kann ich statt Abfragen in allen Kombinationen zu schreiben die
where-Bedingung dynamisch erweitern?

Ich habe es so versucht (geht nicht):

<codeBeispiel>
// Basis-SELECT
var prReisen = m_DcRecherche.PrReisen.Where<PrReisen>(r => (rf.Mandant ==
r.Mandant)).ToList();

if (rf.Reise.Codes.Count == 0)
{
// +1 Filterbedingung, falls zutreffend
prReisen = prReisen.Where<PrReisen>(r =>
rf.Reise.Codes.Contains(r.ReiseCode));
}

if (...)
{
// +1 Filterbedingung, falls zutreffend
prReisen = prReisen.Where<PrReisen>(...
...
</codeBeispiel>



Kann mir jemand ein Tipp geben?

Ciao:
GG ;-)
 

Lesen sie die antworten

#1 Günter Prossliner
02/09/2009 - 16:34 | Warnen spam
Hallo Georg!

Wei kann ich statt Abfragen in allen Kombinationen zu schreiben die
where-Bedingung dynamisch erweitern?



Prinzipiell kann man einzelne ".Where" auf Queries nachtràglich anhàngen.

Ich habe es so versucht (geht nicht):

<codeBeispiel>
// Basis-SELECT
var prReisen = m_DcRecherche.PrReisen.Where<PrReisen>(r =>
(rf.Mandant == r.Mandant)).ToList();



Das Problem hier ist das .ToList(); Durch das wird die Query bereits
ausgeführt.



mfg GP

Ähnliche fragen