пожалуйста преобразовать этот код в LINQконвертировать этот код Linq
"SELECT * FROM tell where name Like 'N%" + textBox1.Text + "'"
пожалуйста преобразовать этот код в LINQконвертировать этот код Linq
"SELECT * FROM tell where name Like 'N%" + textBox1.Text + "'"
EDIT: Учитывая «ответ», вы в курсе, это выглядит, как может быть, вы хотите Contains
вместо этого. Вот здесь действительно полезно потратить некоторое время на объяснение того, что вы пытаетесь сделать в этом вопросе, - обратитесь за советом к моему question-writing guide.
Таким образом, вы можете хотите:
var query = list.Where(item => item.Name.Contains(textBox1.Text));
кажется мне нравится:
var query = from item in db.Tell
where item.Name.StartsWith("N") && item.Name.EndsWith(textBox1.Text)
select item;
Это, если вы на самом деле означает запрос, который вы написали. Если вы включите «N» в попытке сделать это Unicode строку, вы просто хотите:
var query = from item in db.Tell
where item.Name.EndsWith(textBox1.Text)
select item;
Другой вариант - если вы используете LINQ к SQL - это использование SqlMethods.Like
:
var query = from item in db.Tell
where SqlMethods.Like(item.Name, "N%" + textBox1.Text)
select item;
Вы также можете использовать «свободную нотацию» или «точечную нотацию» вместо выражения запроса для любого из них. Например, последний из которых эквивалентно:
var query = db.Tell.Where(item => SqlMethods.Like(item.Name,
"N%" + textBox1.Text));
и первый эквивалентно:
var query = db.Tell.Where(item => item.Name.EndsWith(textBox1.Text));
Или, если вы используете только List<T>
, что-то вроде:
var query = list.Where(item => item.Name.EndsWith(textBox1.Text));
Обратите внимание, что если вы используете код, который вы опубликовали, у вас есть уязвимость в SQL-инъекции - никогда не создавайте SQL, используя введенные пользователем данные напрямую. Вместо этого используйте параметризованные запросы - или что-то вроде LINQ, который будет использовать параметризованный запрос для вас.
Имеет ли EndsWith правильное преобразование в LIKE на сервере (или следует использовать http://msdn.microsoft.com/en-us/library/bb355235.aspx?) – driis
@driis: Я ожидал, что это будет преобразованный в LIKE, да. –
Разве это не 'item.Name.StartsWith (" N ") и item.Name.EndsWith (textBox1.Text)'? – goenning