【问题标题】:Make ADO.NET (and EntityFramework) release a database使 ADO.NET(和 EntityFramework)发布数据库
【发布时间】:2009-09-20 18:50:03
【问题描述】:

我正在为一些集成测试动态创建和删除数据库。我在 ADO.NET 级别进行所有数据库管理。对于我使用实体框架的测试,因为实体是我正在测试的一部分。问题是,在我这样做之后:

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

我不能再删除数据库了。它说它正在使用中。如何释放它以便可以丢弃它?

我实际上在 ADO.NET 级别遇到了同样的问题,我所做的是:

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

但我不确定如何对实体框架连接执行具有相同效果的操作。我尝试手动处理 db 对象(尽管 using 子句应该保证这一点),并且我还尝试手动关闭 db.Connection。都没有帮助。如果我可以在没有实体框架连接的情况下直接运行 SQL,我相信我能够做到。或者也许还有其他方法?

【问题讨论】:

    标签: c# entity-framework connection drop-database


    【解决方案1】:

    您可能需要显式关闭所有连接,我相信该连接正在被池化,并且它是仍保持与数据库的活动连接的池化连接之一。尝试使用SqlConnection.ClearAllPools

    我在 Entity Framework Object Context - AWAITING COMMAND 上写了一篇关于类似问题的博客。

    【讨论】:

      猜你喜欢
      • 2018-05-14
      • 2014-05-10
      • 1970-01-01
      • 2015-09-14
      • 2011-04-15
      • 1970-01-01
      相关资源
      最近更新 更多