您可以
IQueryable<T>逐步编写。假设您有一个
FilterDefinition描述用户希望如何过滤的类…
public class FilterDefinition{ public bool FilterByName { get; set; } public string NameFrom { get; set; } public string NameTo { get; set; } public bool FilterByQuantity { get; set; } public double QuantityFrom { get; set; } public double QuantityTo { get; set; }}…那么您可以像这样构建查询:
public IQueryable<SomeEntity> GetQuery(FilterDefinition filter){ IQueryable<SomeEntity> query = context.Set<SomeEntity>(); // assuming that you return all records when nothing is specified in the filter if (filter.FilterByName) query = query.Where(t => t.Name >= filter.NameFrom && t.Name <= filter.NameTo); if (filter.FilterByQuantity) query = query.Where(t => t.Quantity >= filter.QuantityFrom && t.Quantity <= filter.QuantityTo); return query;}


