Как я могу найти в LINQ, как указано ниже? Я хочу ввести строку как «% b% c% d%» в своем текстовом поле и хочу получить результат по мере поступления в SQL.Предварительный поиск в LINQ
Select *
from TableName
Where ColumnName Like 'a%b%c%d%'
Как я могу найти в LINQ, как указано ниже? Я хочу ввести строку как «% b% c% d%» в своем текстовом поле и хочу получить результат по мере поступления в SQL.Предварительный поиск в LINQ
Select *
from TableName
Where ColumnName Like 'a%b%c%d%'
from item in context.TableName
where item.ColumnName.StartWith("a%") or item.ColumnName.StartWith("b%") or item.ColumnName.StartWith("c%") or item.ColumnName.StartWith("d%")
select item;
Это не то же самое, что и у OP. Вы проверяете, начинается ли оно с a или b или c или d. OP хочет только строки, где столбец начинается с a, затем произвольный, затем b, затем произвольный, затем c, затем произвольный, затем d, затем произвольный. –
LINQ не имеет, как оператора, так что вы могли бы сначала проверить, если он содержит, б, в и г, а затем проверить, если находится в начале, а пред с, и с до того д. Например:
from item in context.TableName
where item.ColumnName.StartsWith("a") && item.ColumnName.IndexOf("b") != -1
&& item.ColumnName.IndexOf("c") != -1 && item.ColumnName.IndexOf("d") != -1
&& (
item.ColumnName.IndexOf("b") < item.ColumnName.IndexOf("c")
&& item.ColumnName.IndexOf("c") < item.ColumnName.IndexOf("d")
)
select item;
Спасибо @Roberto. Как мы можем сделать это общим? –
Linq-To-Sql или Linq-To-Entities. –
Возможный дубликат [Как сделать SQL Like% в Linq?] (Http://stackoverflow.com/questions/835790/how-to-do-sql-like-in-linq) –
@TimBourguignon: хотя воспринятый ответ не помогает. Но ответ на этот вопрос зависит от архитектуры, в Linq-To-Sql вы можете использовать 'SqlMethods.Like'. Я не знаю, как это работает в LInq-To-Entities. Я думаю, вам нужно [этот подход] (http://stackoverflow.com/a/3095963/284240). –