C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DbContextの使い方について


(過去ログ 120 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■70449 / inTopicNo.1)  DbContextの使い方について
  
□投稿者/ 狂炭酸 (1回)-(2014/03/26(Wed) 22:42:21)

分類:[C#] 

OS:Windows7
言語:C#
IDE:VisualStudio Express 2012 for Windows Desktop
DB:SQL Server 2012 Express

お世話になります。

コンストラクタでデータを取得し、削除ボタンクリック時に取得したデータを削除(DELETE)しようとしています。
SetInitialValues内でEntitiesをusingしてplanを取得し、btnDelete_Click内で再度Entitiesをusingして
planを削除しようとするとエラーとなりました。
(別のDbContextで取得したオブジェクトになるので当然といえば当然ですが。。。)

そこでEntitiesを使いまわすために、以下ようにコードを修正したのですが

1.form1が閉じられたとき、EntitiesのDisposeは実行されるのでしょうか?
2.このコードでEntitiesのDisposeが実行されない場合、どのように修正したらよいのでしょうか?


public partial class form1 : Form
{

    private List<plan> planList = new List<plan>();
    private Entities entity = new Entities();

    /// <summary>
    /// コンストラクタ
    /// </summary>
    public form1()
    {
        InitializeComponent();
        SetInitialValues();
    }

    /// <summary>
    /// 初期値をセット
    /// </summary>
    private void SetInitialValues()
    {
        var itemData = (from item in entity.item
                        join plan in entity.plan on item.id equals plan.id
                        select new { item, plan }).ToList();
        /*
            ここでDataGridViewの各列にplanの値をセット
        */
        planList.AddRange(itemData.Select(x => x.plan).ToList());
    }

    /// <summary>
    /// 削除ボタンクリック時
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btnDelete_Click(object sender, EventArgs e)
    {
        foreach (var delPlan in planList)
        {
            entity.plan.Remove(delPlan);
        }
        entity.SaveChanges();

        this.DialogResult = DialogResult.OK;
    }
}

何方かよろしくお願いします。

引用返信 編集キー/
■70453 / inTopicNo.2)  Re[1]: DbContextの使い方について
□投稿者/ shu (514回)-(2014/03/27(Thu) 16:30:38)
No70449 (狂炭酸 さん) に返信

> 1.form1が閉じられたとき、EntitiesのDisposeは実行されるのでしょうか?
> 2.このコードでEntitiesのDisposeが実行されない場合、どのように修正したらよいのでしょうか?

FormClosedイベントで処理すればよいのではないでしょうか?
引用返信 編集キー/
■70455 / inTopicNo.3)  Re[2]: DbContextの使い方について
□投稿者/ 狂炭酸 (2回)-(2014/03/27(Thu) 17:52:53)
No70453 (shu さん) に返信

>>1.form1が閉じられたとき、EntitiesのDisposeは実行されるのでしょうか?
>>2.このコードでEntitiesのDisposeが実行されない場合、どのように修正したらよいのでしょうか?
>
> FormClosedイベントで処理すればよいのではないでしょうか?

返信ありがとうございます。

FormClosedイベントがありましたね。。。
早速実装してみます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -