2

我正在使用 Entity Frameworks 4.1.0.0 和 MySQL.Data.Entity 6.5.4.0,当我尝试为一系列整数生成动态查询时,出现以下错误:

“Int32”类型中不存在适用的方法“包含”

当使用类似的结构来检查字符串时,这似乎工作正常。但我想扩展它以支持我在数据中拥有的其他数据库字段。

代码示例:

        int[] ids = new int[] { 1, 3, 4 };

        IQueryable<entityname> list = db.tablename.Where("Id.Contains(@0)", ids);

我已将 Dynamic.cs 添加到我的项目中,并跟随 http://blog.walteralmeida.com/2010/05/advanced-linq-dynamic-linq-library-add-support-for-contains-extension-。 html ,但使用我通过 Nuget 加载的 Dynamic 并没有什么区别。

先感谢您。

4

2 回答 2

6

语法略有不同:

IQueryable<entityname> list = db.tablename.Where("@0.Contains(outerIt.Id)", ids);

按照您所指的链接。

于 2012-11-30T20:19:33.857 回答
0

如果您需要检查给定(变量)int 值是否包含在实体列中,您可以使用 Dynamic Linq 执行以下操作:

return query.Where(String.Format("{0}.ToString().Contains(@0)", field), value);

查看此答案以了解可以以相当无缝的方式使用字符串、整数和布尔列类型执行此类任务的扩展方法。

于 2019-09-29T00:46:40.803 回答