0

LINQで2つのフィールドを連結して、キーワードでフィルタリングできるようにしようとしています。ここに投稿された質問が私の答えだと思いましたが、何らかの理由で0レコードが返されています。これは、オートコンプリートテキストボックスのJSON結果を返すことになっています(フィールドを連結しない場合に機能します)。

これが私のコードです:

Function CostCodeList(ByVal term As String) As ActionResult

        Dim results = From c In db.ORG_CHART_V
                      Let Fullname = CStr(c.COSTCTR_CD & " - " & c.BREADCRUMB)
                      Where Fullname.ToUpper.Contains(CStr(term).ToUpper)
                      Order By Fullname
                      Select New With {.label = Fullname, .id = c.ORG_NODE_ID}

        Return Json(results.ToArray, JsonRequestBehavior.AllowGet)
  End Function

Returnでこのエラーも発生します:

タイプ'DbQuery(Of VB $ AnonymousType_3(Of String、Integer))'のパブリックメンバー'ToArray'が見つかりません。

2つのフィールドを連結しようとする前に、私はそれらを別々に検索していましたが、うまくいきました。しかし、それらを連結すると、私が試みるすべてのことでエラーが発生するか、レコードがゼロになるようです。

動作する別の関数は次のとおりです。

Function RoleList(ByVal term As String) As ActionResult
        Dim list As New ArrayList
        Dim results As IQueryable(Of JOB_ROLE)

        If IsNumeric(term) Then
            results = From c In db.JOB_ROLE
                      Where CStr(c.JBROLE_NO).StartsWith(term)
        Else
            results = From c In db.JOB_ROLE
                      Where c.JOB_ROLE_NAME.ToUpper.Contains(CStr(term).ToUpper)
        End If

        results = results.OrderBy(Function(e) e.JOB_ROLE_NAME)

        For Each item In results
            list.Add(New With {.label = item.JOB_ROLE_NAME, .id = item.JOB_ROLE_ID})
        Next

        Return Json(list.ToArray, JsonRequestBehavior.AllowGet)
    End Function
4

1 に答える 1

0

意図したとおりに機能する新しい関数は次のとおりです。

    Function CostCodeList(ByVal term As String) As ActionResult
        Dim list As New ArrayList

        Dim results = db.ORG_CHART_V.Where(Function(e) (CStr(e.COSTCTR_CD) + " - " + e.BREADCRUMB).Contains(CStr(term).ToUpper)).OrderBy(Function(o) o.COSTCTR_CD)

        For Each item In results
            list.Add(New With {.label = item.COSTCTR_CD & " - " & item.BREADCRUMB, .id = item.ORG_NODE_ID})
        Next

        Return Json(list.ToArray, JsonRequestBehavior.AllowGet)
    End Function
于 2012-06-04T12:49:03.083 に答える