私のdbmlには、マスターテーブル「M」と詳細テーブル「D1」が含まれています。
私のaspxページは、Mデータを表示するTextBoxと、D1データを入力するグリッドで構成されています。読み込み時間を節約するために、ボタンがクリックされたときにグリッドにデータが表示されるようにします(D1には多くの行が含まれています)。
質問1:次のコードはそれを行う正しい方法ですか?
protected void Page_Load(object sender, EventArgs e)
{
MyDataContext context = new MyDataContext();
M m = context.Ms.Single(n => n.id == id); // id is somehow provided
TextBox1.Text = m.field1;
}
protected void Button1_Click(object sender, EventArgs e)
{
MyDataContext context = new MyDataContext();
M m = context.Ms.Single(n => n.id == id); // id is somehow provided
Grid1.DataSource = m.D1s;
Grid1.DataBind();
}
質問2:Page_Loadでm.D1にアクセスできるので、これは詳細データがデータベースからすでにフェッチされていることを意味しますか、それとも遅延実行が適用されますか?