c# – LINQ to Entities无法识别方法’System.String [] Split(Char [])’方法,

前端之家收集整理的这篇文章主要介绍了c# – LINQ to Entities无法识别方法’System.String [] Split(Char [])’方法,前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试实现一种方法,其中存储在活动数据库中的关键字(用逗号分隔)与用逗号分隔的给定字符串匹配.
  1. public List<TblActivities> SearchByMultipleKeyword(string keywords)
  2. {
  3. string[] keyword = keywords.Split(',');
  4. var results = (from a in Entities.TblActivities
  5. where a.Keywords.Split(',').Any(p => keyword.Contains(p))
  6. select a).ToList();
  7. return results;
  8. }

我收到以下错误

  1. LINQ to Entities does not recognize the method 'System.String[] Split(Char[])' method,and this method cannot be translated into a store expression.

解决方法

对于不涉及太多关键字和太多行的查询,您可以实现这种简单快速解决方案.您可以通过反复优化结果轻松绕过Split功能,如下所示:
  1. public List<TblActivities> SearchByMultipleKeyword(string keywords)
  2. {
  3. string[] keywords = pKeywords.Split(',');
  4.  
  5. var results = Entities.TblActivities.AsQueryable();
  6.  
  7. foreach(string k in keywords){
  8.  
  9. results = from a in results
  10. where a.Keywords.Contains(k)
  11. select a;
  12. }
  13. return results.ToList();
  14. }

猜你在找的C#相关文章