Сгруппировать дочерний список в один родительский объект - запрос AdventureWorks - лямбда-выражение - PullRequest
0 голосов
/ 23 марта 2019

Я работаю с базой данных AdventureWorks и использую следующий запрос:

 SELECT c.CustomerID, c.AccountNumber, soh.SalesOrderID, soh.SalesOrderNumber, sod.UnitPrice, sod.ProductID, p.Name
FROM Sales.SalesOrderHeader soh
inner join sales.SalesOrderDetail sod on soh.SalesOrderID = sod.SalesOrderID
inner join sales.Customer c on c.CustomerID = soh.CustomerID
inner join Production.Product p on p.ProductID = sod.ProductID

У меня уже есть код, который заполняет данные так же, как они возвращаются: enter image description here

Исходя из этого, я хочу объединить дочерние объекты списка в один родительский элемент, чтобы в итоге получить структуру «один ко многим», если это имеет смысл.

На данный момент янадеясь использовать для этого лямбда-выражение .Я пробовал следующий код, но я не хочу указывать -> o.CustomerID, o.AccountNumber в группе, потому что мне нужно было бы указать ВСЕ свойства моего класса Customer дляиметь доступ к окончательному выбору, как вы можете видеть в коде.

                        .GroupBy(o => new { o.CustomerID, o.AccountNumber }).Select(group => new Customer2
                     {
                         CustomerID = group.Key.CustomerID,
                         AccountNumber = group.Key.AccountNumber,
                         Orders = group.SelectMany(x => x.Orders).ToList()
                     }).ToList();

Я бы хотел, чтобы конечный результат выглядел для каждого клиента так: enter image description here

Надеюсь, что это имеет смысл, и заранее спасибо за помощь.

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