Динамический Где в Linq to SQL - PullRequest
       23

Динамический Где в Linq to SQL

0 голосов
/ 14 сентября 2010

Как заставить работать что-то подобное, чтобы я мог динамически изменять выражение where в этом запросе linq to sql?

Dim AccountID = 1234

Dim AccountList

Select Case Types
    Case 1
        AccountList = (from a in dc.Accounts where a.ID = AccountID)
    Case 2
        AccountList = (from a in dc.Accounts where a.ID = AccountID And a.ParentID = AccountID)
    Case Else
        AccountList = (from a in dc.Accounts)
End Select

Return From p in dc.Products where AccountList.Contains(p.Order.Transaction.AccountID)

С кодом выше я получаю эту ошибку:

Операции позднего связывания не могут быть преобразованы в дерево выражений

1 Ответ

3 голосов
/ 14 сентября 2010

Похоже, у вас либо нет Option Strict.Наденьте его и укажите тип AccountList как IQueryable(Of Account).Тогда вы не будете использовать позднюю привязку, и все должно быть хорошо.

...