使用LINQ拆分字符串

Chu*_*ris 5 .net c# linq linq-to-entities exception-handling

我想通过我的结果在我的字符串行中匹配计数.

所以这是代码

.ThenByDescending(p => p.Title.ToLower()
                              .Split(' ')
                              .Count(w => words.Any(w.Contains)));
Run Code Online (Sandbox Code Playgroud)

但它给我带来了错误,并说LINQ无法解析Split为SQL.

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

如何通过LINQ实现Split?

例如,对于此数组,它必须以这种方式排序

words = { "a", "ab" }

ab a ggaaag gh //3 matches
ba ab ggt //2 matches
dd //0 matches
Run Code Online (Sandbox Code Playgroud)

Muh*_*hid 8

这意味着Linq对实体未能找到可以写成sql查询的split方法的翻译.如果您要执行拆分功能,你必须通过调用把记录在内存中ToList(),AsEnumerable()等等.

var result = (from t in db.Table
              select t).AsEnumerable().OrderBy(x=>x.Column).ThenByDescending(p=>p.Title.ToLower.Split(' ')....);
Run Code Online (Sandbox Code Playgroud)