C# 动态Linq未将where条件追加到查询

C# 动态Linq未将where条件追加到查询,c#,mysql,linq,dynamic-linq,linq-to-mysql,C#,Mysql,Linq,Dynamic Linq,Linq To Mysql,我正在使用Linq.Dymanic和linqtomysql。 我正在将筛选条件作为字符串传递给泛型方法。 我正在应用如下所示的过滤条件- IQueryable<TEntity> query = _dbSet; if (!string.IsNullOrEmpty(searchFilter)) { query.Where("ProtectionId=1"); } IQueryable查询=\u dbSet; 如果(!string.IsNullOrEmpty(searchFilte

我正在使用Linq.Dymanic和linqtomysql。 我正在将筛选条件作为字符串传递给泛型方法。 我正在应用如下所示的过滤条件-

IQueryable<TEntity> query = _dbSet;
if (!string.IsNullOrEmpty(searchFilter))
{
   query.Where("ProtectionId=1");
}
IQueryable查询=\u dbSet;
如果(!string.IsNullOrEmpty(searchFilter))
{
查询。其中(“ProtectionId=1”);
}
请注意,“ProtectionId=1”作为“searchFilter”参数传递给方法,我在这里对其进行硬编码以简化。这是一个用于许多类的通用方法,我不能使用lyamada表达式(或者请建议我是否可以为不同的类和属性生成动态lyamada表达式)

where条件不起作用,当我检查生成的sql时,它不会显示应用于它的任何where条件

请建议如何在这里进行


提前谢谢

这可能是因为
searchFilter
null
Empty
否,searchFilter有它的值。当我调试代码时,它会进入if条件。您需要使用
query.Where
,即
query=query.Where(…)
Ohh!我的错!我怎么会错过这个!谢谢@IvanStoevIt可能是因为
searchFilter
null
Empty
否,searchFilter有它的值。当我调试代码时,它会进入if条件。您需要使用
query.Where
,即
query=query.Where(…)
Ohh!我的错!我怎么会错过这个!谢谢@IvanStoev