Asp.net EF Core 3 x.where扩展方法返回IEnumerable而不是IQueryable
EF Core 3Asp.net EF Core 3 x.where扩展方法返回IEnumerable而不是IQueryable,asp.net,entity-framework-core,core,Asp.net,Entity Framework Core,Core,EF Core 3其中扩展方法返回IEnumerable,该方法返回数据库中的所有行。相反,我想要IQueryable,因为我想要基于条件构建查询,并且我不想在完成构建查询之前访问数据库 IQueryable<TEntity> query = _dbset.Where(predicate) if(condition) query = query.where(predicate) IQueryable查询=\u dbset.Where(谓词) 如果(条件) query=query.
其中
扩展方法返回IEnumerable
,该方法返回数据库中的所有行。相反,我想要IQueryable
,因为我想要基于条件构建查询,并且我不想在完成构建查询之前访问数据库
IQueryable<TEntity> query = _dbset.Where(predicate)
if(condition)
query = query.where(predicate)
IQueryable查询=\u dbset.Where(谓词)
如果(条件)
query=query.where(谓词)
谓词的类型是什么?如果它是Func
(而不是Expression
),那么Where
将在所有LINQ版本中返回IEnumerable
(与EF Core无关)。@IvanStoev谢谢我将谓词转换为Expression及其工作。