5

我有以下数据,我想使用 Linq to Entities 过滤数据,但出现异常:

LINQ to Entities 无法识别方法 'System.String[] Split(Char[])' 方法,并且此方法无法转换为存储表达式。

我在表中有以下数据

1           HPM,BKM     NULL        1,2,3
2           HPM,BKM     L1,L2       1,2
3           KK,CC,ZZ,PP             3,4

我正在编写以下代码

var criteria_1="1";

var criteria_2="HPM,"

var Col4 = DB.Letter_Logic.Where(m => m.Col1.Equals(criteria_1)
            && m.Col2.Split(',').Contains(criteria_2)).ToList();

它应该给我值 1,2,3 作为我的结果。

4

1 回答 1

5

这是因为没有办法将 Split(Char[]) 转换为 SQL 表达式。您需要先执行 ToList() 然后执行拆分操作,但请注意,这会在使用拆分表达式过滤掉它们之前将更多结果带回您的计算机:

var Col4 = DB.Letter_Logic.Where(m => m.Col1.Equals(criteria_1))
                          .ToList()
                          .Where(m => m.Col2.Split(',').Contains(criteria_2))
                          .ToList();
于 2012-11-27T01:53:31.077 回答