C#检索linq上的where子句

Tot*_*oto 3 c# linq c#-3.0

有没有办法构建一个linq查询,以便以后使用它或显示/打印它(更具体地说,where子句)?

Mar*_*ell 9

你究竟想要什么?您可以捕获只是表达Where-是这样的:

Expression<Func<SomeType, bool>> predicate = row => row.IsActive
          && row.Color == "red";
Run Code Online (Sandbox Code Playgroud)

因为这是一个表达式树,所以有一个有意义的ToString().

如果你想要SQL(等),那么这将是特定于实现的.例如,使用LINQ-to-SQL,您可以使用.Log- 例如,ctx.Log = Console.Out;

如果你想让谓词不在IQueryable<T>feed 的中间,那就更难了......