直到昨天,我有一个非常好的工作数据库和种子测试数据。然后我运行了一个很久以来的“更新包”。它几乎更新了每个ASP包。
我删除了DB并重新创建了它,测试数据是由Seed方法完美地创建的。到目前一切尚好。
现在,当我尝试以的任何方式访问DB时,就像这样
public ActionResult Index()
{
return View(db.Games.ToList());
}我在db.Games.ToList()上得到了这个错误:
“System.Data.SqlClient.SqlException”类型的异常发生在EntityFramework.dll中,但未在用户代码中处理 附加信息:无法删除数据库“DataBaseName”,因为它目前正在使用中。
显然,“系统”没有理由认为我想删除数据库。这只是一个select查询。就像我说的,这发生在任何db查询上。
当然,我可以撤销整个“更新包”,但实际上这不是我想要做的。
这是个虫子吗?我错过了什么吗?
非常感谢!
发布于 2014-07-01 10:33:41
我发现了问题,是EntityFramework包。我从6.0.0升级到6.1.1,得到了错误
“System.Data.SqlClient.SqlException”类型的异常发生在EntityFramework.dll中,但未在用户代码中处理 附加信息:无法删除数据库“DataBaseName”,因为它目前正在使用中。
当我从6.0.0升级到6.0.1 (一个较小的更新步骤)时,错误更加具体(而且不同)。
“System.InvalidOperationException”类型的异常发生在EntityFramework.dll中,但未在用户代码中处理 附加信息: DropCreateDatabaseAlways初始化程序没有删除或创建支持上下文'ApplicationDbContext‘的数据库,因为该上下文启用了迁移。使用Migrations管理此上下文的数据库,例如从Package控制台运行“更新-数据库”命令。
EF有问题,因为我使用了DropCreateDatabase初始化器和迁移。从6.0.1版开始,EF就不再喜欢它了(我知道它是没用的)。
尽管如此,我还是不明白为什么他们在后来的版本中改变了这个错误。
https://stackoverflow.com/questions/24484743
复制相似问题