2
に多くの関係に1から単一の値を表示します。は、私は3つのテーブルを持っているのGridView
私は、OrderStatesコレクション内に1つの値、つまり追加された最新のOrderStateを表示しようとしています。
私はサブクエリについて少しは読んだことがありますが、私が望む結果を達成する方法についてはわかりません。
申し訳ありませんが情報の不足、私はテーブル構造のすべてのセットアップがいい画像を持っていましたが、stackoverflowは私にそれをアップロードさせませんでした。
編集 -
[OK]これを行う方法を理解しました。 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'のタイムスタンプを取得します。 – V4Vendetta
3つのテーブルすべての構造を指定すると、より良いでしょう。 – suryakiran