0
我有4個XML文件包含這種格式的數據。這些數據實際上來自Microsoft Northwind數據庫,但我已經獲得了XML格式的一些表格。完整的關係圖可用here。LINQ查詢獲取數據
訂單
<Orders>
<Order>
<OrderID>10248</OrderID>
<CustomerID>VINET</CustomerID>
<EmployeeID>5</EmployeeID>
</Order>
.............
.............
.............
訂單明細
<OrderDetails>
<OrderDetail>
<OrderID>10248</OrderID>
<Quantity>12</Quantity>
<UnitPrice>14.0000</UnitPrice>
</OrderDetail>
<OrderDetail>
<OrderID>10248</OrderID>
<Quantity>10</Quantity>
<UnitPrice>9.8000</UnitPrice>
</OrderDetail>
.............
.............
.............
員工
<Employee>
<EmployeeID>5</EmployeeID>
<FirstName>Steve</FirstName>
<LastName>Buchanan</LastName>
</Employee>
<Employee>
<EmployeeID>6</EmployeeID>
<FirstName>Michael</FirstName>
<LastName>Suyama</LastName>
</Employee>
.............
.............
.............
個客戶
<Customer>
<CustomerID>VINET</CustomerID>
<CompanyName>Vins et alcools Chevalier</CompanyName>
<ContactName>Paul Henriot</ContactName>
</Customer>
<Customer>
<CustomerID>WANDK</CustomerID>
<CompanyName>Die Wandernde Kuh</CompanyName>
<ContactName>Rita Müller</ContactName>
</Customer>
<Customer>
.............
.............
.............
現在我想要得到的對象的列表,使得每個對象包含以下內容:
- 的OrderId(Orders表 - 例如 - 10248)
- 公司名稱爲以上訂單編號(來自Customers表 - 例如 - Vins et alcools Chevalier)
- 上述訂單編號的聯繫人姓名(來自Customers表 - 示例 - Paul Henriot)
- 員工名稱爲僱員ID爲相應的訂單ID(從僱員表 - 示例 - 史蒂夫布坎南)
- Total OrderDetails表上述訂單id的總數量。這將是12 + 10 = 22,因爲有兩個訂單編號爲10248
- OrderDetails表中上述訂單編號的總價格。這將是12 * 14 + 10 * 9.8 = 266。
所以對象中的一個將看起來像這樣 - {10248,VIN的等alcools士,保羅亨裏厄特,史蒂夫布坎南,22,266}
現在我可以寫一個LINQ查詢,讓我的OrderID,聯繫人姓名和公司名稱是這樣的:
var list = from o in ordersList
join cl in customersList
on o.CustomerId equals cl.CustomerId
select new
{
o.OrderId,
cl.CompanyName,
cl.ContactName
};
但這只是給了我三兩件事。我努力獲取對象所需的全部6件東西。此外,如何執行計算,因爲訂單表中的一個orderid可以具有多個訂單細節。例如 - 對於訂單ID 10248,我們有2個訂單細節。
感謝
謝謝哥們。我有很多東西需要學習。謝謝你的時間。 – VVV 2014-10-12 07:51:04