У меня есть 3 таблицы:
Заказать,
OrderStates,
OrderStateDefinition
В ордере есть много OrderStates, у которых есть одно OrderStateDefinition.
У меня есть сетка, в которой я пытаюсь отобразить только одно значение в коллекции 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
{
}