RichC
RichC

Reputation: 7879

Dynamic Where in Linq to SQL

How would I get something like this to work so that I can dynamically alter the where-clause in this linq to sql query?

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)

With the above code I get this error:

Late binding operations cannot be converted to an expression tree

Upvotes: 0

Views: 1084

Answers (1)

Jon Skeet
Jon Skeet

Reputation: 1500555

It sounds like you've either not got Option Strict on. Put it on, and specify the type of AccountList as IQueryable(Of Account). Then you won't be using late binding, and all should be well.

Upvotes: 3

Related Questions