私はちょうど動的フィルタを構築したい。 そして最後に、私は(AndAlso)式の組み合わせを使用することを試みたが、それは働いていなかったと最終的に私は良い作品のIQueryableクエリがあることがわかったが、今どのように私は変換することができますIQueryable <T>をExpression <Func <T, bool>>に変換する方法?
Expression<Func<Event, bool>>
を返しますその戻り値の型へ -
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);
}
が更新さを見てみましょう答え(フロリシアのコメントを考慮に入れて、あなたはすでにそれを受け入れていると思いますが、あなたはまだそれを知らせるでしょう)。 – Sam