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.

- Rejestracja:prawie 22 lata
- Ostatnio:10 miesięcy

- Rejestracja:prawie 22 lata
- Ostatnio:10 miesięcy
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

- Rejestracja:ponad 18 lat
- Ostatnio:ponad 6 lat
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();

- Rejestracja:prawie 16 lat
- Ostatnio:ponad 15 lat
- Postów:91
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 :)
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.