LINQ to Entities中的字符串拆分

时间:2014-02-25 08:05:45

标签: c# asp.net entity-framework linq-to-entities

我有一个表,其中包含我想分析的分页列表。其中一个字段是URL,毫不奇怪地包含了pagehit的URL。这包括任何查询字符串,例如http://foo.bar/default.aspx?test=1234

我想从此表中删除查询字符串以供我进行分析,并认为以下简单的字符串拆分可行:

    var pageHits = from p in context.Pagehits
                   let URL = p.URL.Split('?')[0]
                   select p;

然而我收到错误: The LINQ expression node type 'ArrayIndex' is not supported in LINQ to Entities.

鉴于表格相当重要,是否在没有查询字符串的情况下返回URL的最佳方法是什么?

编辑: 如果我打电话给.ToList,我可以使它工作,但这看似计算过多

2 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情

              var pageHits = from p in list
                             select p.Substring(0,p.IndexOf('?');

我制作了一个包含网址的字符串列表,仅用于检查它是否有效(我的代码中的“列表”)

答案 1 :(得分:-2)

               var pageHits = from p in context.Pagehits
               select p;

               pageHits.ToList().ForEach(p => 
                                   { 
                                     p.Url = p.Url.Split('?')[0];
                                   });