这是一个非常明显但棘手的问题。我无法在网络上找到答案,或者只是我缺少可以找到答案的关键字。
假设我们有许多条件要基于这些条件来筛选数据。这些条件在多个块中。如何编写它们,以便它们作为AND
子句工作,但不OR
前提是它们只参与特定条件。
var query = _entities.AsQueryable();
if (model.CityId != default)
{
query = query.Where(x => x.CityId == model.CityId);
}
if (!string.IsNullOrWhiteSpace(model.PostalCode))
{
query = query.Where(x => x.Proppostcode == model.PostalCode);
}
if (!string.IsNullOrWhiteSpace(model.AirportCode))
{
query = query.Where(x => x.AirportCode == model.AirportCode);
}
如果这个问题需要更多详细信息,请告诉我。谢谢!
我是否缺少可以找到答案的关键字?
是的,这个缺少的关键字是Dynamic Expression
或Dynamic Query
。如果您遵循这些关键字,您会发现很多问题的解决方案。
正如本教程所说:
Dynamic Query
允许您在运行时使用字符串表达式执行动态where
子句、select
、order by
。
您也可以点击以下链接:
- 代码项目
- Microsoft
祝你好运。