C# 如果首次使用代码优先方法,则迁移错误

C# 如果首次使用代码优先方法,则迁移错误,c#,asp.net-mvc,entity-framework,asp.net-mvc-4,ef-code-first,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,Ef Code First,在我的MVC5项目中,我使用代码优先的方法创建数据库。然而,在启用迁移之后,我发现了一个错误 已为上下文“ApplicationDbContext”启用迁移,但数据库不存在或不包含映射表。使用迁移 创建数据库及其表,例如通过运行 来自包管理器控制台的“更新数据库”命令 但是,如果我删除了迁移文件夹,则错误得到解决,但我无法使用迁移。请帮忙。我正在附上错误的屏幕截图 我运行addmigration命令,然后运行updatedatabase。这确实帮助了我。但是,如果我更改连接字符串并再次运行该项

在我的MVC5项目中,我使用代码优先的方法创建数据库。然而,在启用迁移之后,我发现了一个错误

已为上下文“ApplicationDbContext”启用迁移,但数据库不存在或不包含映射表。使用迁移 创建数据库及其表,例如通过运行 来自包管理器控制台的“更新数据库”命令

但是,如果我删除了迁移文件夹,则错误得到解决,但我无法使用迁移。请帮忙。我正在附上错误的屏幕截图


我运行
addmigration
命令,然后运行
updatedatabase
。这确实帮助了我。但是,如果我更改连接字符串并再次运行该项目,则在未删除迁移文件夹之前,该项目不会创建数据库。

启用迁移只会创建用于创建和设定该数据库种子的脚本。您需要从PackageManager控制台运行update database来创建数据库。将在web.config连接字符串中引用的服务器上创建数据库

在使用数据库之前,您需要创建迁移,这将使用
添加迁移
命令描述数据库的结构,然后使用
更新数据库
命令更新数据库以匹配当前模型


您可能会发现这很有用。

我运行添加迁移命令,然后更新数据库。这确实帮助了我。但是,如果我更改连接字符串并再次运行项目,则在未删除迁移文件夹之前,项目不会创建数据库。如果更改连接字符串,则需要再次运行
更新数据库
命令,因为您正在处理其他数据库。但如果我向最终用户提供应用程序,那么他如何运行更新数据库命令?您的最终用户不应该这样做。作为交付成果的一部分,您还应该包括一个生产就绪的数据库。或者您可以使用数据库初始值设定项,特别是
MigrateDatabaseToLatestVersion
初始值设定项。迁移也可以从代码中调用-请参见
DbMigrator
class(),我运行添加迁移命令,然后更新数据库。这确实帮助了我。但是,如果我更改了连接字符串并再次运行项目,则在未删除迁移文件夹之前,它不会创建数据库。您不必运行更新数据库,它可以。