linq查询中的动态where子句

时间:2011-10-14 23:51:51

标签: c# linq linq-to-sql linq-to-objects

抱歉我的英语不好。我有个问题。我想在LINQ查询中创建动态where子句。我有一个列表对象名称“list1”,其值为CountryCityState以及一个名为NameLastname,{{1}的列的数据表},CountryCity。我想将list1值与datatable列进行比较,并获得null / empty行。

所以我想要一个像这样的LINQ查询:

State

但它返回错误。我该如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:1)

好的,让我们开始吧 - 你的查询非常糟糕。

  • 您不应该datatable.AsEnumerable - 强制进行表格扫描(贯穿整个表格)。
  • 其次,您必须以明确的方式对所有字段进行编码。这将变得令人讨厌 - 根据列表的大小,这将是非常糟糕的。

一般来说,每个查询都是IQueryable本身,所以你可以链接where conditions.VERY很好 - 我自己使用它,定义核心查询,然后根据需要添加其他where子句(通过输入参数)在执行之前。

遗憾的是,通过单个字段匹配将表与元素列表进行比较与从sql级别获取的内容一样糟糕。