c# - 使ADO.NET(和EntityFramework)发布数据库

标签 c# entity-framework connection drop-database

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

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

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

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

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

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

最佳答案

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

我在 Entity Framework Object Context - AWAITING COMMAND 中发表了类似问题的博客.

关于c# - 使ADO.NET(和EntityFramework)发布数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1451716/

相关文章:

c# - asp.net 网站中的 7-zip 压缩

c# - 将 GroupBy DateTime 与 Entity Framework 一起使用会引发异常

wcf - Azure Service Fabric 双工连接

javascript - 格式化字符串和日期时间?

c# - 如何将多个 View 模型绑定(bind)到 MVVM wpf 中的单个 xaml 文件?

entity-framework - Code First - 在一对多关系中将级联规则设置为 "Set Null"

.net - 如何使用 Entity Framework 实现跨 DBMS 插入忽略?

xcode - FBSDKRequestConnection 警告 swift3

sql - SQL Server 连接是否加密?

C# Socket.BeginSend AsyncCallback 行为(超时?)