我有一张桌子。
有一个列名是分支。其中包含逗号分隔值。喜欢这个
1,2
2,4
5,6
3,4
6,8
4,9,7
等等......
我有一个List<string>
,其中包含两个值3和4。
我需要一个数据库查询,它将获取包含3或4的所有列数据。
所以out put将是
2,4
3,4
4,9,7
我正在使用此代码作为解决方案。
RowCollection.Where(row => row.Split(",").ToList()
.Where(x => list.Contains(x)).Any()).ToList();
这显示错误。
Method 'System.String[] Split(Char[])' has no supported translation to SQL.
请让我知道解决方案我将为此做些什么。
答案 0 :(得分:2)
不幸的是,你使用的IQueryable(Linq to SQL)不支持Split功能。
在这种情况下,你真的只剩下IEnumerable(Linq to Objects)支持它了。你需要做的第二个代码片段就是......
在这种情况下,试试看这个
var collection = RowCollection.ToList();
var filterdate = collection.Where(row => row.Split(",").ToList()
.Where(x => list.Contains(x)).Any()).ToList();
不支持拆分n t-sql你应该首先在一个列表中获取数据而不是应用你的条件。
或申请AsEnumerable()
var collection = RowCollection.AsEnumerable()
.Where(row => row.Split(",").ToList()
.Where(x => list.Contains(x)).Any()).ToList();