如何在动态linq查询中使用"包含"或"喜欢"?

Cur*_*ite 36 .net linq dynamic linq-to-sql

CSharpSamples.zip中Dynamic Linq附带的帮助文件未显示使用contains或like的任何示例.

这样做有什么简单的解决方法吗?即哪里(像@col这样的col)不起作用.

Cur*_*ite 61

这是答案!Dynamic Linq确实支持.运营商,

根据文件:

"实例字段或实例属性访问.可以访问任何公共字段或属性."

因此,可以使用此语法

.Where("MyColumn.Contains(@0)", myArray)
Run Code Online (Sandbox Code Playgroud)

感谢所有的建议!感谢我找到解决方案.

  • @Teddy .Where("MyColumn!= null && MyColumn.Contains(@ 0)",myArray) (8认同)

use*_*075 11

对我来说,解决方案是outerIt.

   class User { public string Name { get; set; } }
   ...
   IQueryable<User> query = db.Users;
   ...
   query = query.Where("@0.Contains(outerIt.Name)", list);
Run Code Online (Sandbox Code Playgroud)

请注意,outerIt是一种在库中构建关键字(您无需修改​​它,因为您可以在此处的答案中阅读它).您可以通过它访问查询类型的属性.