c# - EF 在测试之间删除数据库
问题描述
我正在使用 Specflow 为我的 UI 编写测试。一些测试改变了我的数据库,所以我不能重新运行一些测试。当我使用 EF 时,我决定简单地删除我的数据库(因为 EF 将创建新数据库并为其播种)。当我运行我的测试时,我的 MVC 项目是打开的。我尝试使用以下代码删除我的数据库:
[BeforeFeature]
public static void DropDatabase()
{
Database.Delete("SampleDbName");
}
但问题是我无法删除数据库,因为它当前正在使用中。然后我尝试了两种解决方案:
将 Pooling = false 添加到我的连接字符串
调用 SqlConnection.ClearAllPools(); 在删除我的数据库之前
这两种情况都对我不起作用,因为每次我尝试访问我的数据库时都会出现“无法将文件 .mdf 作为数据库附加”错误(这发生在我的数据库被删除之后)。
我的目标是在不重新启动 MVC 项目的情况下使我的测试可重新运行。有一些解决方案可以解决这个问题吗?
解决方案
推荐阅读
- azure - 在 Azure 中部署 Spring 批处理的最佳解决方案是什么?
- reactjs - Typescript 中异步函数操作的类型是什么
- xamarin - 绑定 Objective-c 扩展的 WeakDelegate 属性
- swift - 基于 NSDate 升序对 coreData 进行排序不起作用
- java - 使用 PDFBox 将页面添加到 PDF/A 文件而不丢失 PDF/A 有效性
- r - R包openxlsx和渐变
- sql - 然后在的情况下
- javascript - Textarea 仅调整 1 个区域的大小
- influxdb - 将数据从 InfluxDB 迁移到 Prometheus
- react-native - 如何在本机反应中获得视频大小?