Tôi chỉ muốn xây dựng bộ lọc động. Và cuối cùng để trởLàm thế nào để chuyển đổi IQueryable <T> thành Biểu thức <Func <T, bool>>?
Expression<Func<Event, bool>>
Tôi đã cố gắng sử dụng Kết hợp biểu thức (AndAlso), nhưng nó đã không workin và cuối cùng tôi phát hiện ra rằng có những thắc mắc IQueryable mà làm việc tốt, nhưng bây giờ làm thế nào tôi có thể chuyển đổi nó vào kiểu trả -
Expression<Func<Event, bool>>?
mã của tôi:
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);
}
Hãy xem các cập nhật Câu trả lời (Tôi nghĩ rằng bạn đã chấp nhận nó một không chắc chắn nó bạn vẫn nhận được thông báo trong trường hợp đó) mà có bình luận của Florian vào tài khoản. – Sam