我正在编写集成测试来验证我的存储库中的行为。我遇到的问题是我想从一个干净的数据库开始为每个测试。我设法通过如下编写 SetUp 来做到这一点:
[SetUp]
public void SetUp()
{
_applicationContext = new TestApplicationContext();
_applicationContext.Database.Connection.Close();
_applicationContext.Database.Delete();
_applicationContext.Database.Create();
_tenantRepository = new TenantRepository(_applicationContext);
_userRepository = new UserRepository(_applicationContext);
}
将TestApplicationContext
数据库名称设置为TestDatabase
.
这工作正常,直到我想检查我的测试结果的实际数据库。然后我从 MSSQL 服务器连接到同一个数据库,在我之前不会关闭:
- 关闭 MSSQL 服务器
- 使用“关闭所有连接”选项删除数据库
我发现的唯一方法是通过 SQL 命令。也许是因为我对 MSSQL 的 n00b 知识,但我有点希望有一个“关闭连接”按钮/选项。
如何关闭从 MSSQL 服务器到数据库的连接?或者,有没有办法可以从 C# 以编程方式执行此操作?
更新:
也许我不是很清楚。但是在我打开 MSSQL 并查看表的内容后,测试设置失败。这是因为 MSSQL 还创建了到 TestDatabase 的连接,而我的集成测试无法关闭该连接。所以我正在寻找一种解决方案,允许我关闭从 MSSQL 服务器创建的连接。