I have a method that needs to accept an array of country names, and return a list of records that match one of those country names. I'm trying this
Public Shared Function GetConcessions(ByVal Countries As String()) As IEnumerable
Dim CountryList As String = Utility.JoinArray(Countries) ' turns string array into comma-separated string
Return (From t In New Db().Concessions _
Where CountryList Like t.Country _
Select t.ConcessionID, t.Title, t.Country)
End Function
but I get this error
*Only arguments that can be evaluated on the client are supported for the LIKE method
In plain SQL, this would be simple:
Select ConcessionID,Title from Concessions c where @CountryList like '%' + c.Country + '%'
How can I achieve this result in Linq to SQL?
Edit (clarification)
I get the same message with string.Contains. It would be fine with
t.Country.contains(CountryList)
but I need
CountryList.contains(t.Country)
and that throws the same error I listed above.
I think what you want to do is construct a List from Countries and use
This would translate into
Please excuse my C#-ishness..
You can use SqlMethods.Like
e.g.