Оператор linq, как * (звездочка) в SQL - PullRequest
1 голос
/ 16 ноября 2009

Я хочу выбрать все поля одной таблицы и только специфические поля второй таблицы. Есть ли способ сделать это, как с таблицей. * В SQL?

 var things = from t in db.table1
              from t2 in db.table2
              where ...Join Clause...
              select new { t.*,t2.onefield}

Очевидно, что этот код не работает, но я думаю, что он иллюстрирует мою замену.

если я использую

select new {t,t2.onefield}

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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 16 ноября 2009

Вы могли бы сделать следующее:

var things = from t in db.table1
          from t2 in db.table2
          where ...Join Clause...
          select new { MyProperty= t ,t2.onefield}

и затем получите доступ к газетам Т с помощью:

var t= things.First();
Console.WriteLine("{0}, {1}, {2}", 
                  t.MyProperty.Field1, 
                  t.MyProperty.Field2, 
                  t.onefield);
2 голосов
/ 16 ноября 2009

Это не очень хорошая практика в SQL, и, даже если это можно сделать с помощью Linq, она тоже не будет хорошей практикой с Linq, если Linq не сгенерирует код T-SQL, который распространяется на все столбцы таблицы.

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