Создать запрос Linq в функции c # - PullRequest
1 голос
/ 12 марта 2012

Я использую Linq в C #.Я определил свою собственную функцию следующим образом:

public static void AutoSuggest(TextBox t, string columnName, string tableName)
{

}
  • t является ссылкой на текстовое поле
  • ColumnName - это имя определенного столбца
  • Tablename - это имяконкретной таблицы

В этой пользовательской функции, используя параметры, я хочу получить данные указанного столбца из указанной таблицы базы данных.

Итак, как мне сгенерироватьэтот запрос в Linq?

1 Ответ

4 голосов
/ 12 марта 2012

Если вы хотите использовать LINQ, вам лучше поговорить об источнике и селекторе; некоторые IQueryable<T> и что-то вроде Expression<Func<T,string>>. Если вы хотите использовать имена столбцов / таблиц, сначала они должны быть внесены в белый список (никогда не принимайте имена из, скажем, веб-запроса), но код будет простым:

var values = dataContext.ExecuteQuery<string>("select distinct [" + columnName
      + "] from [" + tableName +"]").ToList();

это довольно наивный подход, но он показывает основное использование; тогда вы бы связали данные как обычно. Однако я бы гораздо больше склонялся к тому, чтобы вызывающий код просто делал, например:

var values = dataContext.SomeTable.Select(x => x.SomeProperty)
              .Distinct().ToList();

, что позволит избежать риска инъекции и т. Д.

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