1

何が違うのか気になる…

using (var db = new PteDotNetContext())
            {
                var blog = new Blog() { BlogType = 1, Title = "Blog 1", Description = TestInfo.UniqueRecordIdentifier, DateAdded = DateTime.Now, User = TestInfo.UniqueRecordIdentifier };
                db.Blogs.Add(blog);
                db.SaveChanges();
            }


            PteDotNetContext context2 = new PteDotNetContext();
            var blog2 = new Blog() { BlogType = 1, Title = "Blog 2", Description = TestInfo.UniqueRecordIdentifier, DateAdded = DateTime.Now, User = TestInfo.UniqueRecordIdentifier };
            context2.Blogs.Add(blog2);
            context2.SaveChanges();

は。using ステートメントを使用すると、基本的にオブジェクトのデストラクタが呼び出されることを理解しています。不思議に思う...

a) using ステートメントは、DbContext で Sql 接続を開いてから閉じますか? b) もしそうなら、2 番目のステートメントはどうなりますか? では、いつステートメントを閉じるのでしょうか。

4

1 に答える 1

3

a) using ステートメントは、DbContext で Sql 接続を開いてから閉じますか?

ステートメント内で宣言された変数はusing、ブロックの使用が終了すると Disposed になります。DbContext では、破棄メソッドが接続を閉じるため、そのコード ブロックが終了するとすぐに接続が閉じられます。

b) もしそうなら、2 番目のステートメントはどうなりますか? では、いつステートメントを閉じるのでしょうか。

ガベージ コレクターは、不要になったときにコンテキスト オブジェクトをクリアし、接続を閉じます。

usingステートメントとについて読む必要がありIDisposableます。

于 2012-04-13T16:17:22.847 に答える