我有以下数据,我想使用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的值作为我的结果。
答案 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();