Как я могу напрямую выполнять SQL-запросы в linq - PullRequest
8 голосов
/ 12 апреля 2011

В C # с VS 2008 у меня есть запрос. В этом запросе я объединяю более одной таблицы, поэтому я не знаю тип, я хочу знать, как напрямую выполнить SQL-запрос в linq.

IEnumerable<Type> results = db.ExecuteQuery<TYpe>("sql query")

Мой запрос выше работает нормально, но я хочу избежать ввода типа, я хочу написать

var results = db.ExecuteQuery("sql query");

Есть ли способ написать это?

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

Ответы [ 2 ]

5 голосов
/ 06 февраля 2013
    var result = dataContext.ExecuteQuery<JobsDto>
                 ("Select JobID,JobName From jobs");

, но убедитесь, что JobsDto имеет два свойства JobID и JobName, и там указан тот же тип, что и столбцы таблицы

PS.DTO стенд для объекта передачи данных

5 голосов
/ 12 апреля 2011

Вам необходимо указать тип для сопоставления из результатов запроса. Вы можете использовать объект System.Type вместо статического указания его в качестве параметра универсального типа:

var results = db.ExecuteQuery(typeof(Customer), "sql query ");

Если вы просто хотите простой ADO.NET DataReader, вы можете использовать свойство DataContext.Connection:

using (var cmd = db.Connection.CreateCommand()) 
{ 
  cmd.CommandText = "sql query ";
  var results = cmd.ExecuteReader();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...