我在構建新的對象查詢時遇到了實現TOP或SKIP功能的問題。實體框架 - 使用動態查詢的頂部
我無法使用eSQL,因爲我需要使用「IN」命令 - 如果我遍歷IN並將它們全部添加爲「OR」參數,則這可能會變得非常複雜。
代碼如下:
Using dbcontext As New DB
Dim r As New ObjectQuery(Of recipient)("recipients", dbcontext)
r.Include("jobs")
r.Include("applications")
r = r.Where(Function(w) searchAppIds.Contains(w.job.application_id))
If Not statuses.Count = 0 Then
r = r.Where(Function(w) statuses.Contains(w.status))
End If
If Not dtFrom.DbSelectedDate Is Nothing Then
r = r.Where(Function(w) w.job.create_time >= dtDocFrom.DbSelectedDate)
End If
If Not dtTo.DbSelectedDate Is Nothing Then
r = r.Where(Function(w) w.job.create_time <= dtDocTo.DbSelectedDate)
End If
'a lot more IF conditions to add in additional predicates
grdResults.DataSource = r
grdResults.DataBind()
如果我使用任何形式的.TOP或.Skip它拋出一個錯誤:不支持查詢生成方法LINQ to Entities查詢
有什麼辦法使用此方法指定TOP或Limit?如果可能的話,我想避免查詢返回1000條記錄。 (它是一個關於用戶搜索屏幕)