Entwickler-Ecke

C# - Die Sprache - ObjectQuery Where-Funktion dynamisch bedienen


Schnippet - Mi 18.03.09 16:30
Titel: ObjectQuery Where-Funktion dynamisch bedienen
Hallo,

in dem angefügten Beispiel hole ich mir eine Auswahl von Daten in eine ObjectQuery.
Nun möchte ich aber die Where-Funktion dynamisch bedienen. D.h. ich weiss erst zur Laufzeit wie der Filter gesetzt werden soll. Der erste Parameter könnte ja noch in einer String-Variable aufgebaut werden, aber wie kann das mit den anderen Parametern gehen ?


C#-Quelltext
1:
2:
ObjectQuery<Objekt> ObjektQuery =
                    ef.Objekt.Where(("it.CreateDate>= @von and it.CreateDate<= @bis"), von, bis);


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Kha - Mi 18.03.09 17:34


C#-Quelltext
1:
2:
3:
4:
public ObjectQuery<T> Where(
    string predicate,
    params ObjectParameter[] parameters
)

params ist reiner Syntactic Sugar, der implizit ein Array erstellt. Explizit sieht es so aus:

C#-Quelltext
1:
ef.Objekt.Where("it.CreateDate>= @von and it.CreateDate<= @bis"new[] { von, bis });                    

Du musst die dynamischen Parameter also in ein ObjectParameter[] stecken.


Schnippet - Do 19.03.09 11:47

Jau, das hat geholfen. Vielen Dank!