2010-09-14 3 views
0

Как я могу заставить что-то подобное работать, чтобы я мог динамически изменять предложение where в этом запросе linq на sql?Динамический Где в 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) 

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

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

ответ

3

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

+0

AccountList - это всего лишь список строк на самом деле, так что это делает IQueryable (из String) трюк - спасибо! – EdenMachine

Смежные вопросы