System.String [] Split(Char [])'方法无法识别

pap*_*bpb 4 c# linq linq-to-entities asp.net-mvc-3

我有以下数据,我想使用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
Run Code Online (Sandbox Code Playgroud)

我正在编写以下代码

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();
Run Code Online (Sandbox Code Playgroud)

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

arm*_*oon 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();
Run Code Online (Sandbox Code Playgroud)