无法使用EF Code First重建数据库

时间:2012-03-02 06:30:35

标签: entity-framework ef-code-first sql-server-express

我有一个有效的EF Codefirst DB。我对我的实体做了一些更改,并希望重建数据库。由于不相关的编码错误已被纠正,因此不会重建。所以我想我可以从SQLExpress中删除数据库,然后让EF重新创建它。然而,这没有发生。相反,我现在得到错误。

无法打开登录请求的数据库“DataAccessTest.MyDBContext”。登录失败。 用户'Server \ Administrator'登录失败。

同样在事件发生时我得到了错误。

原因:无法打开明确指定的数据库。

当然,因为它不在那里所以。但我不知道为什么会阻止它重新创建数据库。

我已尝试从此帖here中提到的代码中手动执行此操作,但我只是遇到了相同的错误。

我知道这不是我的用户凭据,因为我加载了另一个示例EF项目,并且能够更新它。我也知道这不是我的代码,因为当我将它从源代码控制下拉到另一个系统时,它工作正常。

我担心我搞砸了EF或Visual Studio用来处理特定数据库的一些后台文件,我无法弄清楚如何清除它。

任何想法都会受到赞赏。

4 个答案:

答案 0 :(得分:0)

尝试手动删除数据库并使用DropCreateDatabaseIfModelChanges初始值设定项。 MyDbInitializer : DropCreateDatabaseIfModelChanges<MyContext>

答案 1 :(得分:0)

物理数据库文件在哪里创建?我有一种感觉,你遇到了一个问题,即目录中存在数据库mdf和ldf文件。去那儿看看。

答案 2 :(得分:0)

解决方法是更改​​Web.config的连接字符串中的Initial Catalog属性。它不是解决方案,但有效。这个问题的实际解决方案非常受欢迎。

答案 3 :(得分:0)

如果您知道删除的数据库的名称,请使用sql server management studio手动创建一个具有相同名称的空数据库。一旦EF找到一个名称正在寻找的数据库,它就会很高兴。