Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 带有多个where子句的EFCore查询,这些子句一起充当AND而不是OR_Entity Framework_Ef Core 3.0 - Fatal编程技术网

Entity framework 带有多个where子句的EFCore查询,这些子句一起充当AND而不是OR

Entity framework 带有多个where子句的EFCore查询,这些子句一起充当AND而不是OR,entity-framework,ef-core-3.0,Entity Framework,Ef Core 3.0,这是一个很明显但很棘手的问题。我在网上找不到它的答案,或者只是缺少了可以找到答案的关键词 假设我们有很多条件,我们想根据这些条件过滤数据。这些条件在多个块中。如何编写它们,使它们作为和子句工作,而不是或,前提是它们仅在特定条件下参与 var query = _entities.AsQueryable(); if (model.CityId != default) { query = query.Where(x => x.CityId == mode

这是一个很明显但很棘手的问题。我在网上找不到它的答案,或者只是缺少了可以找到答案的关键词

假设我们有很多条件,我们想根据这些条件过滤数据。这些条件在多个块中。如何编写它们,使它们作为
子句工作,而不是
,前提是它们仅在特定条件下参与

    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);
    }
如果这个问题需要更多细节,请告诉我。谢谢大家!

我是否缺少可以找到答案的关键字

是,缺少的关键字是
动态表达式
动态查询
。如果你遵循这些关键词,你会找到很多解决问题的方法

如前所述:

动态查询
允许您在运行时使用字符串表达式执行动态
where
子句、
选择
按顺序

您也可以访问以下链接:

祝你好运