2
我有3個表:顯示從一個單一的值,以一對多的關係在GridView
訂單, OrderStates, OrderStateDefinition
定單已經許多OrderStates然後具有一個OrderStateDefinition。
我有一個GridView,我試圖在OrderStates集合中顯示一個值 - 最新的OrderState已被添加。
我讀過一些關於子查詢的內容,但我不確定如何去實現我想要的結果。
對不起,缺乏信息,我有一個很好的圖片設置表結構的所有設置,但stackoverflow不會讓我上傳它。
編輯 -
好吧我想通了如何做到這一點。當GridView被填充時,我使用事件OnRowCreated來設置我需要的字段的文本。爲了獲得我需要的控制權,我使用了e.Row.FindControl。
它的代碼最後很簡單。當我最終尋求幫助時,我似乎總是把這些東西弄清楚。
try
{
int orderID = e.Row.RowIndex;
Order order = ShopEntities.Orders.Single(o => o.OrderStateID == orderID);
// I can now get the list of orderstates
OrderStateDefinition osd = order.OrderStates.OrderBy(o => o.Date).Last().OrderStateDefinition;
((Label)e.Row.FindControl("Label2")).Text = osd.State;
}
catch
{
}
您認爲如何確定哪個OrderState是最新的? OrderStates表中是否有類似CreatedOn的字段? –
獲得任何一個id的'max'或者'OrderStates'的時間戳,它表明它是最新的並且使它成爲你的where子句的一部分 – V4Vendetta
如果給出所有3個表的結構,會更好。 – suryakiran