【问题标题】:How to Pass dynamic condition in where clause in LINQ?如何在 LINQ 的 where 子句中传递动态条件?
【发布时间】:2021-01-11 10:55:18
【问题描述】:

如何编写动态查询,以及如何将其传递到 where 条件中?

var query = "Name = 'Test'";

//Get data by passing dynamic query
var result = from Table01 in T0001
    where(query)
    select Table01 ;

【问题讨论】:

  • 您可能已经看过很多关于类似主题的问题。请edit您的帖子澄清为什么通常的构建表达式树的方法不适用于您的情况,以及您究竟想要什么作为“动态 where 条件”的输入。这将添加缺失的细节并使其更具责任感。
  • 我投票决定重新开放,因为我看不出这个问题缺乏重点。

标签: c# asp.net .net asp.net-mvc linq


【解决方案1】:

您可以使用System.Linq.Dynamic 以便动态构建查询:

var query = "Name == \"Test\"";

var result = dbContext.T0001.Where(query).ToList();

【讨论】:

    【解决方案2】:

    您可以添加对System.Linq.DynamicSystem.Linq.Dynamic.Core 的引用,具体取决于您拥有的项目类型(例如,让已弃用的包与框架winforms 项目配合使用要容易得多)和.net 的风格它使用 - 参见 https://dynamic-linq.net/ 例如使用。

    代码与您那里的代码几乎一样,只是您不会使用撇号来分隔字符串,因为撇号是用于字符的。你可以使用\",但更典型的做法是

    Where("Name = @0", "Test")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      • 2010-11-03
      • 1970-01-01
      • 2021-11-10
      相关资源
      最近更新 更多