我只想建立一个动态筛选器。 最后返回结果。
Expression<Func<Event, bool>>
我曾试过使用Combine (AndAlso)表达式,但它没有起作用,最终我发现有IQueryable查询可以很好地工作,但现在该如何将其转换为返回类型 -
Expression<Func<Event, bool>>?
我的代码:
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);
}