[C#] Linq i filtry

0

Witam serdecznie.
Mam następujący problem a mam 5 filtrów typu np. stanowisko, data od, do itp. I chciałbym zrobić coś takiego jak opcję filtruj. I teraz pytanie jak to zrobić? Bo raczej bez sensu jest pisanie po kolei wszystkich funkcji do każdej możliwości. W zwykłym zapytaniu sql nie byłoby problemu bo posklejało by się stringi i z tego miałoby się ładnie zapytanie do bazy. Czy da się zrobić cos podobnego w linq. Czyli np jeśli mam date różną do null to daje where a jeśli nie to go pomijam.

0

nie bardzo rozumiem o co ci chodzi, ale moze o cos takiego :>

var query = from segmenty in stanowisko
               from data in date
               select date;
0

Chodzi np o coś takiego jak wybiorę np daną osobę z combobox-a to ma wyć dodany do zapytania warunek where a jeśli nie to po prostu ma on zostać pominięty. Czyli czy da się jakieś warunki wpleść w linq?
[edit]
Juz znalazłem rozwiązanie. Jakby ktoś potrzebował to http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

0

jezus.. po co Ci cofac sie do sklejania stringow (bo DLinq prawieze Cie do tego cofa..), skoro masz linq, obiekty i odroczona konstrukcje/egzekucje zapytania?

var query = from xxx in yyyy select xxx;
if(date != null) query = query.where( x => x.data == date.value);
if(imie != null) query = query.where( x => x.imie == imie);

x[] result = query.ToList();

0

proponuje tak:

var Lista= from i in Baza.Tabela
               where (szukana_data==null or(szukana_data!=null and i.data==szukana_data))and
                         (szukane_imie == null or (szukane_imie!=null and i.imie==szukane_imie))
               select i;

LINQ w zależności od parametru wygeneruje inne zapytanie (prostsze lub trudniejsze), a przynajmneij to powinien zrobić teoretycznie. W każdym bądz razie do bazy poleci jedno zapytanie a nie 10 :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1