“方法”布尔包含(System.String)'没有支持的SQL转换。“
查询是IsQueryable但是这停止了工作:
foreach (string s in collection1)
{
if (s.Length > 0)
{
query = query.Where(m => m.collection2.Contains(s));
}
}
更新:当我使查询“ienumerable”而不是iqueryable时它会起作用。使用linq而不是迭代循环来获得相同结果的方法是什么?
答案 0 :(得分:22)
试试这个:
query = query.Where(m => m.collection2.ToList().Contains(s));
^^^^^^^^
答案 1 :(得分:2)
从stackoverflow看一下这个answer。
看起来生成的查询需要访问数据库的内容 没有办法到达,因为信息在记忆中。
答案 2 :(得分:1)
由于m.collection2在数据库中,因此请勿使用Contains。使用任何
m.collection2.Any(x => x == s)
答案 3 :(得分:0)
看起来您看到的错误来自集合集合2.您是否尝试将m.collection2包装在另一个返回true或false的函数中?这是LINQ语法吗?