我正在尝试连接 LINQ 中的两个字段,以便我可以使用关键字进行过滤。我在这里发现了一个我认为是我的答案的问题,但由于某种原因我得到了 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
我在退货时也遇到了这个错误:
未找到类型“DbQuery(Of VB$AnonymousType_3(Of String,Integer))”上的公共成员“ToArray”。
在尝试连接这两个字段之前,我分别成功地搜索了它们。但是当我将它们连接起来时,似乎我尝试的每件事都会给我一个错误和/或零记录。
这是一个确实有效的不同功能:
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