Entity framework Can';t使用EF Codefirst重建数据库

Entity framework Can';t使用EF Codefirst重建数据库,entity-framework,ef-code-first,sql-server-express,Entity Framework,Ef Code First,Sql Server Express,我有一个工作EF代码第一数据库。我对实体做了一些更改,并希望重建数据库。由于不相关的编码错误已经被纠正,它不会重建。所以我想我可以从SQLExpress中删除数据库,然后让EF重新创建它。然而,这并没有发生。相反,我现在得到了错误 无法打开登录请求的数据库“DataAccessTest.MyDBContext”。登录失败。 用户“服务器\管理员”登录失败。 在事件中,我也得到了错误 原因:无法打开显式指定的数据库。 这当然是因为它不在那里。但我不知道为什么这会阻止它重新创建数据库 我已经尝试过用

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

无法打开登录请求的数据库“DataAccessTest.MyDBContext”。登录失败。 用户“服务器\管理员”登录失败。

在事件中,我也得到了错误

原因:无法打开显式指定的数据库。

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

我已经尝试过用本文中提到的代码手动执行,但我只是得到了相同的错误

我知道这不是我的用户凭证,因为我加载了另一个示例EF项目,并且能够很好地更新它。我也知道它不是我的代码,因为当我把它从源代码管理拉到另一个系统时,它工作得很好

我担心我弄乱了EF或Visual Studio用于处理特定DB的一些背景文件,我不知道如何清除它



希望您有任何想法。

尝试手动删除DB,然后使用dropcreatedatabaseifmodelschanges初始化器,如此
MyDbInitializer:DropCreateDatabaseIfModelChanges

尝试手动删除数据库并像这样使用DropCreateDatabaseIfModelChanges初始值设定项
MyDbInitializer:DropCreateDatabaseIfModelChanges

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

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

一种解决方法是更改Web.config的connectionstring中的初始Catalog属性。这不是一个解决方案,但有效。此问题的实际解决方案非常受欢迎。

一个解决方法是更改Web.config的connectionstring中的初始Catalog属性。这不是一个解决方案,但有效。非常欢迎对此问题的实际解决方案。

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

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

构建过程中失败的代码错误与删除数据库的决定有什么关系?我认为我使用EF的方式不正确,我的代码实际上阻止了它的重建,但是我知道它第一次成功地构建了它,所以我的思路是让我们重新开始,稍后我会担心重建问题。您是否设置了数据库初始值设定项,如果是,哪一个?除了@Jayantha建议我没有尝试任何其他初始值设定项。构建过程失败的代码错误与删除数据库的决定有什么关系?我认为我使用的EF不正确,我的代码实际上阻止了它的重建,但是我知道它第一次成功地构建了它,所以我的思路是让我们重新开始,稍后我会担心重建问题。你是否设置了数据库初始值设定项?如果是,是哪一个?除了@Jayantha建议的那个,我没有试过任何其他初始值设定项。谢谢你的建议,但这似乎没有什么不同。我犯了和以前一样的错误。谢谢你的建议,但似乎没有什么不同。我犯了和以前一样的错误。想法不错,但这似乎不是我的问题。我从未更改过SQLExpress实例的默认位置,我的所有测试数据库都加载了它们的默认位置。该目录中当前没有我的问题项目的任何文件。我想我可以重新创建这个项目,看看它是否清除了阻碍它的任何东西。这也很有效……它每隔一段时间就会让我感到愤怒。这是个好主意,但似乎不是我的问题。我从未更改过SQLExpress实例的默认位置,我的所有测试数据库都加载了它们的默认位置。该目录中当前没有我的问题项目的任何文件。我想我可以重新创建这个项目,看看它是否清除了任何阻碍它的东西。这也行得通……它每隔一段时间就会让我发火。