有一段时间我运行我的c#mvc web-project
SQLException无法删除数据库[database_name]。 [database_name]正在使用中
在我尝试从DBContextex对象检索我的数据的行上。但是当我删除数据库并重新启动项目时,错误已经过时。它突然发生了。发生错误后,我再次重新启动项目,然后当我删除数据库并重新启动时仍然存在错误。
假设控制器Action有以下行
List<entityname> listent=new DbContext().entitynames.toList();
正在执行,然后我在以下行上调整错误。 我也有一个数据库初始化程序。
可能是什么问题?
答案 0 :(得分:2)
如果您在构造函数中设置了一个drop-create初始化器,如下所示,那么EF将在每次初始化上下文时重新创建数据库。
public MyDbContext() : base("MyDbConnectionString")
{
//TODO: Remove initializer
Database.SetInitializer<MyDbContext>(new DropCreateDatabaseAlways<MyDbContext>());
Database.SetInitializer<MyDbContext>(new DropCreateDatabaseIfModelChanges<MyDbContext>());
}
如果您确实希望实体框架执行此操作,请确保您的用户帐户在SQL Server中具有所需的访问权限。
如果您的数据库已创建且您只想应用更新,请删除初始化程序并改为使用EF迁移。