символ подстановки linq to sql в числовом столбце - PullRequest
0 голосов
/ 08 марта 2011

В SQL я могу сделать что-то вроде этого:

select  * from Table1 where Col1 like '%'

Я пытаюсь сделать это в linq следующим образом:

from p in Table1
where SqlMethods.Like(p.Col1, "%")
select  new { p.Col1}

Но это не работает, потому что ожидает Col1 дляbe int.

Причина, по которой я это делаю, заключается в том, что я пытаюсь создать форму поиска и должен использовать подстановочные знаки для параметров, которые не были заполнены (некоторые являются строками, некоторые являются числовыми).

Ответы [ 3 ]

3 голосов
/ 08 марта 2011

Как насчет того, чтобы для целочисленных значений вы указали диапазон и предикат, указывающий, что значение должно быть больше минимального / меньше максимального? Это кажется мне более интуитивным, чем сравнение строк в числовом поле.

2 голосов
/ 08 марта 2011

Почему бы тогда не попробовать преобразовать в строку?

from p in Table1
where SqlMethods.Like(p.Col1.ToString(), "%")
select  new { p.Col1}
0 голосов
/ 08 марта 2011

Hm. Как это?

from p in Table1
where p.Col1.ToString().Contains("foo")
select new { p.Col1}

Обмен Содержит BeginsWith / StartsWith, поскольку функциональность LIKE может ... или использовать RegExp, если это более сложное выражение.

...