Używam linq do entity (EF). Mam konstruktora, który ma 4 parametry ciąg znaków. W zależności od tego, który parametr nie jest pusty, muszę zbudować zapytanie linq. Mogę zrobić z instrukcjami else, ale mam też inny konstruktor z 10 parametrami, w takim przypadku będzie wiele kombinacji do sprawdzenia.Dynamiczne gdzie klauzula w Linq do Entity
przykład:
Constructor(p1,p2,p3,p4)
{
var prod= from p in ctxt.products.expand("items\details")
where p.x==p1 && p.xx==p2 && p.xxx==p3 && p.xxxx==p4
select p;
}
W powyższym przykładzie, gdy warunek nie powinno być tylko sprawdza warunek, że parametr ten nie jest zerowy. tzn. jeśli p2 jest null wtedy, gdy klauzula powinna wyglądać
where p.x==p1 && p.xxx==p3 && p.xxxx==p4
jeśli P2 i P3 są nieważne następnie
where p.x==p1 && p.xxxx==p4
Czy ktoś może mi powiedzieć, jak sobie z tym poradzić. jeśli to możliwe, można podać przykładowy kod dla tej
Możliwy duplikat http://stackoverflow.com/questions/697345/linq-to-sql- need-dynamic-where-klauzula-over-relational-tables-help? rq = 1 –