2009-09-20 15 views
2

いくつかの統合テストでは、データベースを即座に作成および削除しています。私はADO.NETレベルですべてのデータベース管理を行っています。テストのためにエンティティはエンティティフレームワークを使用しています。なぜならエンティティは私がテストしているものの一部なのですから。問題はこれを実行した後です。ADO.NET(およびEntityFramework)がデータベースを解放するようにする

using (ProjectEntities db = new ProjectEntities(cs)) { 
} 

私はもうデータベースを削除できません。それは使用中であると言います。それを放すことができるように私はどのようにそれを解放するのですか?

私は実際にはADO.NETレベルで同じ問題を抱えていたし、私がやったことだった。

new SqlCommand("USE [master]", DatabaseConnection).ExecuteNonQuery(); 

が、私は、Entity Frameworkの接続のための同じ効果で何かを実行するかどうかはわかりません。 dbオブジェクトを手動で破棄しようとしています(ただし、using句で保証されるはずです)。また、db.Connectionを手動でクローズしてみました。どちらも役に立たなかった。 Entity Frameworkとの接続をSQLで直接実行できない場合、私はそれを実行できると信じています。それとも別の方法がありますか?

答えて

5

明示的にすべての接続を閉じる必要があるかもしれません。接続がプールされていると思います。プールされた接続の1つで、DBへのアクティブな接続を維持しています。試してみてくださいSqlConnection.ClearAllPools

私はEntity Framework Object Context - AWAITING COMMANDで同様の問題についてブログしました。

関連する問題