我有3张桌子:
令, OrderStates, OrderStateDefinition
Order有许多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
{
}
答案 0 :(得分:0)
我经常发现创建自己的SQL更容易。 sql可能有点复杂,但它比使用c#更容易。