我正在使用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
基于此,我想将子列表对象合并为一个父对象,如果有意义的话,最终采用一对多结构。
截至目前,我希望使用 lambda表达式进行此操作。我尝试了以下代码,但是我不想在组中指定-> 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();
我希望这是有道理的,并预先感谢您的帮助。