2014-09-30 33 views
0

我想綁定在產品名稱的下拉列表和orderItemID作爲其值(無論是從兩個不同的表,但有關係)獲得從源頭增值LINQ後,SQL SELECT

繼承人的數據庫設計(一些)爲簡潔離開了列

Order - ID, Name, address 
OrderItems - ID, OrderID, ProductID, Price 
Products - ID, Name, description, Price 

繼承人的代碼來連接這一切

var oList = ReturnOrderItems(OID).Select(pr => new {pr.Product.Name }).ToList(); 
DropdownListItems.DataSource = oList; 
DropdownListItems.DataTextField = "NEED THE ORDER ITEM ID"; 
DropdownListItems.DataValueField = "Name"; 
DropdownListItems.DataBind(); 

ReturnOrderItems是一個簡單的方法,通過訂單ID獲得的所有訂單項。

然後我添加了一個Select來返回產品名稱(因爲OrderItems與產品表有關係)。

到目前爲止,這個工程並返回的產品名稱是不錯,但我怎麼能拿到訂單項目的ID(這將在ReturnOrderItems(OID)方法裏舉行?

我試過幾種方法但我得到的最多的就是的productID這是沒有好? - 我應該怎麼做這個

+0

你可以顯示GetOrderItems定義? – 2014-09-30 11:19:30

回答

1

假設方法返回的OrderItem集合,然後你會做

var oList = ReturnOrderItems(OID).Select(pr => new {pr.Product.Name, pr.ID }).ToList(); 

而且你確定要存儲名稱和di展示的ID,否則我想你想這樣的:

DropdownListItems.DataTextField = "Name"; 
DropdownListItems.DataValueField = "ID"; 
+0

謝謝 - 我甚至沒有想過做這麼簡單的事情!我一直假設公關將是一個產品,因此它會指的是產品ID而不是訂單項ID。 – Computer 2014-09-30 12:54:59

+0

@Computer pr是你的方法返回的集合中的任何一個實例,我想也許pr是一個壞名字。在lamdas中,我通常只用x來表示所有事情,以避免混淆,但有些人更喜歡類名的縮寫,所以我認爲在你的情況下,OrderItem的oi會更好。 – 2014-09-30 13:04:54