НРАВИТСЯ в Linq to SQL - PullRequest
       12

НРАВИТСЯ в Linq to SQL

3 голосов
/ 10 октября 2008

У меня есть метод, который должен принимать массив названий стран и возвращать список записей, соответствующих одному из названий этих стран. Я пытаюсь это

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

но я получаю эту ошибку

  *Only arguments that can be evaluated on the client are supported for the LIKE method

В простом SQL это было бы просто:

 Select ConcessionID,Title from Concessions c where @CountryList like '%' + c.Country + '%'

Как мне добиться этого результата в Linq to SQL?

Редактировать (уточнение)

Я получаю то же сообщение со строкой. Содержит. Было бы хорошо с

t.Country.contains(CountryList)

но мне нужно

CountryList.contains(t.Country) 

и это выдает ту же ошибку, что я перечислил выше.

Ответы [ 2 ]

9 голосов
/ 10 октября 2008

Вы можете использовать SqlMethods.Like

например.

Where SqlMethods.Like(t.country, "%Sweden%")
2 голосов
/ 10 октября 2008

Я думаю, что вы хотите создать список из стран и использовать

List<string> ListOfCountries = new List(Countries)

...ListOfCountries.Contains(t.Country)

Это переведет на

t.Country IN ('yyy','zzz',...)

Прошу прощения за мою C # -шельность ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...