Linq Join, сохраняя все поля с одной стороны без явного перечисления - PullRequest
2 голосов
/ 11 апреля 2019

Мой код требует нескольких внутренних объединений двух наборов БД. Один набор довольно большой (~ 20 столбцов), и все поля актуальны. Есть ли способ вывести все поля без явного перечисления их?

Упрощенная версия моего кода (db - это мой контекст):

var x = db.BigFact
        .join(db.Lookup1, l => l.Lookup1Id, r => r.Lookup1Id
             (l, r) => new {l.Col1, l.Col2 … l.Col20, r.OneName}
         )

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

Я ищу что-то вроде синтаксиса SQL:

SELECT l.*, r.OneName
FROM BigFact as l
JOIN Lookup1 as r
ON   l.Lookup1Id = r.Lookup1Id

Ответы [ 2 ]

3 голосов
/ 11 апреля 2019

Вы можете сделать это так:

var x = db.BigFact
    .join(db.Lookup1, l => l.Lookup1Id, r => r.Lookup1Id
         (l, r) => new { Left = l, r.OneName}
     )
1 голос
/ 11 апреля 2019

выводить все поля без явного перечисления их?

Просто вставьте оригинальный элемент, такой как FullItem, показанный ниже.

(l, r) => new {l.Col1, l.Col2, FullItem = l, r.OneName}

Это создаетновая сущность с полями Col1, Col2, OneName и FullItem.Элементы разыменования из FullItem, такие как FullItem.Col3 и даже FullItem.Col1.

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