gpt4 book ai didi

c# - 如何在 Azure 中启用 Code First 迁移

转载 作者:行者123 更新时间:2023-12-02 06:50:53 29 4
gpt4 key购买 nike

我正在使用代码优先迁移方法在 VS 2013 中开发一个 MVC 5 项目。一开始,在本地以及我第一次将 MVC 站点部署到 azure 时,一切都运行正常。

在这两个地方(本地和 Azure),身份表都已正确创建:

  • __迁移历史
  • AspNet角色
  • AspNetUserClaims
  • AspNetUserLogins
  • AspNetUserRoles
  • AspNet用户

我面临的问题是当我添加两个新列:Name 和 LastName 来存储用户的数据时。然后,我使用第一次代码迁移更新我的架构。它在我的本地计算机中已正确更新。新列已添加到 AspNetUser 表中。

但是,当我将其部署到 Azure 时,该表尚未包含新列。这导致我收到错误:

Server Error in '/' Application.

Invalid column name 'Name'.
Invalid column name 'LastName'.
Invalid column name 'Name'.
Invalid column name 'LastName'.
Invalid column name 'Name'.
Invalid column name 'LastName'.

那么,如何启用代码优先迁移到 Azure 中的 MVC 项目?因此,当我从 Visual Studio 部署它时,数据库架构也会在 Azure 中更新。

最佳答案

这里有两个解决方案:

<强>1。从包管理器控制台使用 Update-Database:

从包管理器控制台运行以下命令:

Update-Database 
-TargetMigration {YourMigration}
-ConnectionString "Server=tcp:{your server name}.database.windows.net,1433;
Database={your db};
User ID={your user}@{your server};
Password={your password};
Trusted_Connection=False;
Encrypt=True;
Connection Timeout=30;"
-ConnectionProviderName "System.Data.SqlClient"

替换 Azure 门户连接字符串中的相关服务器名称、用户名、数据库和密码数据

<强>2。从代码运行迁移:

将以下内容添加到 Global.asax 中的 Application_Start

protected void Application_Start()
{
//....

// Running Migrations from Code:
var configuration = new Configuration();
var migrator = new DbMigrator(configuration);
migrator.Update();
}

调用Update方法会将目标数据库更新为最新的迁移。

摘自: https://romiller.com/2012/02/09/running-scripting-migrations-from-code/

关于c# - 如何在 Azure 中启用 Code First 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28979128/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com