Ich möchte nur einen dynamischen Filter erstellen. Und schließlichWie konvertiert man IQueryable <T> in Ausdruck <Func <T, bool>>?
Expression<Func<Event, bool>>
ich das Kombinat (AndAlso) Ausdrücke zu verwenden, haben zurückzukehren versucht, aber es war nicht workin und schließlich fand ich, dass es IQueryable Abfragen sind, die gut funktioniert, aber jetzt, wie kann ich konvertieren es dem Rückgabetyp -
Expression<Func<Event, bool>>?
Mein Code:
public IQueryable<Event> GetBySearch(EventFilter search)
{
IQueryable<Event> query = this.Context.Events.AsQueryable();
Expression<Func<Event, bool>> expression = null;
if (search.CategoryId != 0)
{
query = query.Where(x => x.CategoryId == search.CategoryId);
}
if (search.SubCategoryId != 0)
{
query = query.Where(x => x.SubCategoryId == search.SubCategoryId);
}
expression = query.Expression as Expression<Func<Event, bool>>; //This convert is not working, it returns null.
return this.Context.Events.Where(expression);
}
Werfen Sie einen Blick auf die aktualisierte Antwort (ich glaube, Sie haben es bereits akzeptiert und ich bin mir nicht sicher, ob Sie in diesem Fall trotzdem benachrichtigt werden), die Florians Kommentar berücksichtigt. – Sam