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

时间:2012-11-27 01:27:34

标签: c# asp.net-mvc-3 linq linq-to-entities

我有以下数据,我想使用Linq to Entities过滤数据,但我得到例外:

  

LINQ to Entities无法识别方法'System.String []   拆分(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的值作为我的结果。

1 个答案:

答案 0 :(得分: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();