错误? MVC5:EF6想要在LINQ查询上删除数据库吗?

时间:2014-06-30 07:15:19

标签: c# asp.net-mvc linq entity-framework linq-to-entities

直到昨天,我还有一个完美的工作数据库,带有种子测试数据。 然后我跑了很长时间的“更新包”。它几乎更新了每个ASP包。

我删除了数据库并重新创建了它,测试数据是通过Seed方法完美创建的。 到目前为止一切都很好。

现在,当我尝试以任何方式访问数据库时,就像这样

public ActionResult Index()
    {
        return View(db.Games.ToList());
    }

我在db.Games.ToList()上得到了这个错误:

  

EntityFramework.dll中发生了'System.Data.SqlClient.SqlException'类型的异常但未在用户代码中处理

     

其他信息:无法删除数据库“DataBaseName”,因为它当前正在使用中。

显然,“系统”没有理由认为我想要删除数据库。这只是一个选择查询。就像我说的,这发生在任何数据库查询上。

当然我可以撤消整个“更新包”,但实际上这不是我想要做的。

这是一个错误吗?我错过了什么吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我发现了问题,它是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'   因为为上下文启用了迁移。使用迁移到   管理此上下文的数据库,例如通过运行   '更新,数据库'来自程序包管理器控制台的命令。

EF出现问题,因为我使用了DropCreateDatabase Initializer和迁移。 看起来从版本6.0.1开始,EF不再那样了(我知道它无论如何都没用)。

然而,我不明白他们为什么在以后的版本中更改了这个错误......