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