1

我正在尝试从数据库中提取地址记录并按地址将它们组合在一起。够简单吧?

我遇到的问题是 LOCATION 字段的格式是这样的

BUILDING:  some building description
ADDRESS: 555 1st Street

或者

BUILDING:  some building description  ADDRESS:  555 1st STREET

有多个地址、城市和州匹配的实例。但是BUILDING:描述没有。所以我需要在地址之前删除任何东西,包括地址:

这些看起来很简单。但我似乎无法让它发挥作用。这是我当前的 LINQ

Dim addressesP1 = _
        (From R In tickets _
         Where R.PRIORITY = 1 _
         Group R By R.Z_LOC_CITY, R.Z_LOC_STATE, _
         ZLOC = Regex.Replace(R.Z_LOCATION, "/.+address:/is", "") _
         Into Group _
         Where Group.Count >= P1Count _
         Select ZLOC, Z_LOC_CITY, Z_LOC_STATE, thecount = Group.Count)

For Each c In addressesP1
        list.Add( _
                New TicketAddress With _
                     {.z_location = c.ZLOC, _
                      .z_loc_city = c.Z_LOC_CITY, _
                      .z_loc_state = c.Z_LOC_STATE, _
                      .thecount = c.thecount() _
                      })
    Next


    Return list

运行时出现以下错误:

方法“System.String Replace(System.String, System.String, System.String)”不支持 SQL 转换

4

1 回答 1

1

您是否期望在 SQL 中执行所有查询?如果是这样,我想你会失望的——我不认为LINQ to SQL 支持正则表达式。

如果您乐于在进程中完成其余的查询,则可以AsEnumerable()在第一个子句之后使用。Where

请注意,您可以通过执行另一个 Select 然后调用 来更轻松地构建列表ToList

于 2010-05-26T15:04:59.377 回答