CSharpSamples.zip中Dynamic Linq附带的帮助文件未显示使用contains等的任何示例。
这样做有什么简单的解决方法吗?即(像@col这样的col)不起作用。
答案 0 :(得分:60)
这是答案! Dynamic Linq确实支持。运营商,
根据文件:
“实例字段或实例属性 访问。任何公共领域或财产 可以访问。“
因此,可以使用此语法
.Where("MyColumn.Contains(@0)", myArray)
感谢所有的建议!感谢我找到解决方案。
答案 1 :(得分:11)
对我来说,解决方案是 outerIt 。
class User { public string Name { get; set; } }
...
IQueryable<User> query = db.Users;
...
query = query.Where("@0.Contains(outerIt.Name)", list);
请注意, outerIt 是一种在库中构建的关键字(您无需修改它,因为您可以在此处的答案中阅读它)。您可以通过它访问查询类型的属性。
答案 2 :(得分:4)
实际上,Linq2Sql中对like运算符有直接支持:
db.MyTable.Where(a => SqlMethods.Like(a.Name, "%"+searchTerm+"%"))
见这里:
http://msdn.microsoft.com/en-us/library/system.data.linq.sqlclient.sqlmethods_members.aspx
...但我更喜欢在大多数应用程序中使用startsWith,endsWith和contains。