Próbuję utworzyć instrukcję LINQ, gdzie klauzula where pochodzi ze zmiennej. Na przykład:C# Linq gdzie klauzula jako zmienna
string whereClause = address.zip == 23456;
var x = from something in someList where whereClause;
Czy to możliwe? Nie mogę tego zmusić do działania.
Dzięki,
Aktualizuj - mój gdzie klauzula jest predefiniowany i będzie opierać się na danych wprowadzonych przez użytkownika, więc nie sądzę, że to będzie pracować dla mnie. Zasadniczo whereClause nie jest skonstruowany w metodzie, jest to parametr metody, która wykonuje LINQ. Nie wyjaśniłem, że dobrze tutaj jest lepszy przykład:
public void doLnq(string whereClause)
{
var x = from something in someList where whereClause;
dowork(x);
}
Aktualizacja - Wystarczy podsumować niektóre sugestie i scentralizować wszystko.
Nie mogę użyć przełącznika do wygenerowania klauzuli where, ponieważ istnieje wiele możliwości.
Dynamiczny post linq, który napisali niektórzy z was, wygląda obiecująco, ale mam problemy związane z linq do sql przy moim problemie z linq to objects.
i @sLaks po pominie MSDN http://msdn.microsoft.com/en-us/library/bb353734.aspx Mam problemy zastanawianie się, gdzie chodziło o użycie AsQueryable
dzięki,
Er, nie. Klauzula where jest po prostu * nie * ciągiem znaków, jest to wyrażenie zwracające wartość logiczną. Z wyjątkiem ... zobacz link SLaksa! – sq33G
@ sq33G ciąg znaków w tej sytuacji będzie "address.zip == 23456" Chciałbym użyć jako wyrażenia. Ciąg pochodzi od danych wprowadzonych przez użytkownika, dzięki czemu można wykonywać niestandardowe wyszukiwania. Czy to ma sens? – kds6253
Zgaduję, że użytkownik wybiera pole (pole == wartość) z menu rozwijanego. Więc prawdopodobnie możesz użyć instrukcji switch do zbudowania Func, aby wysłać jako delegata Where. –
sq33G