Оставить соединение, вернуть все столбцы из первой таблицы - PullRequest
0 голосов
/ 09 апреля 2011

Прямо сейчас, для LEFT JOIN я использую «Включить»:

var items = (from item in Content.Entity1.Include("Entity2")
            select new { Value1 = item.Col1, Value2 = item.Col1, ...., Value3 = item.TheReference.Col1});

Существует проблема с этим, когда в первом объекте есть много столбцов, которые я должен ввести.

Есть ли возможность вернуть ВСЕ столбцы из первого объекта и определенный столбец для второго объекта?

1 Ответ

1 голос
/ 09 апреля 2011

Просто верните левую сущность как отдельную и добавьте дополнительные, которые вы хотите:

from item in Content.Entity1.Include("Entity2")
select new { Left = item, Right = item.TheReference.Col1 };

Использование T4

Если ваш код является общим и повторяется от объекта к объекту, то, я полагаю, вы могли бы написать шаблон T4, который будет генерировать эти LINQ для вас. Но это будет означать, что эти пользовательские правильные столбцы сущностей должны быть каким-либо образом предоставлены через переменную шаблона.

Итак. Создайте файл ttinclude, а затем N tt файлы, в которых вы устанавливаете дополнительные значения переменных и ссылаетесь на шаблон генератора ttinclude.

Но кроме этих двух (и ваших с ручной записью столбцов) на самом деле больше ничего нет.

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