Linq2SQL для создания оператора Like

У меня есть строка "Word1 Word2", и я хочу преобразовать его к запросу такой как "Как '%Word1%Word2%'".

В данный момент я имею:

from t in Test
where t.Field.Contains("Word1 Word2")

Как сделать это в LINQ2SQL? Я должен создать два отдельных запроса для этого, разве я не могу записать это в том же операторе?

Заранее спасибо

7
задан Dante 13 April 2010 в 11:32
поделиться

3 ответа

from t in Test
where SqlMethods.Like(t.Field, "%Word1%Word2%")
select t
8
ответ дан 7 December 2019 в 05:20
поделиться

В качестве обходного пути, возможно, этого будет достаточно:

from t in Test
where t.Field.Contains("Word1") && t.Field.Contains("Word2")

... с некоторой пост-фильтрацией на стороне клиента, чтобы гарантировать, что слово2 идет после слова1.

0
ответ дан 7 December 2019 в 05:20
поделиться

Ну, это переводится как

LIKE "%Word1 Word2%"

что, вероятно, не то, что вы хотите... Если вы напишете запрос следующим образом:

where t.Field.Contains("Word1") && t.Field.Contains("Word2")

Он сгенерирует следующий SQL :

DECLARE @p0 VarChar(4) SET @p0 = '%ab%'
DECLARE @p1 VarChar(4) SET @p1 = '%cd%'
....
SELECT ...
WHERE ([t0].[Field] LIKE @p0) AND ([t0].[Field] LIKE @p1)
0
ответ дан 7 December 2019 в 05:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: