gpt4 book ai didi

Azure 移动服务和 Code First 迁移更新

转载 作者:行者123 更新时间:2023-12-03 00:32:48 25 4
gpt4 key购买 nike

我创建了一个 Azure 移动服务项目。从项目一开始,我就创建了实体并启用了 Code First 迁移。在开发过程中,我在创建新实体、修改现有实体以及通过数据迁移更新数据库方面从未遇到过任何问题。一切都甜蜜又美好。

我将解决方案发布到 Azure 移动服务。我的数据库架构是自动创建的,一切都运行良好。

几天后,我需要更新表中的字段。因此在本地更新实体并在本地运行服务。我的数据库的本地版本已更新为新添加的内容。我将该服务上传到 Azure,并希望我的在线数据库也能更新。但我收到这个错误

The model backing the 'xxxxx' context has changed since the database was created. Consider using Code First Migrations to update the database.

这很奇怪,因为代码优先迁移已经启用。我的数据库最初是使用它们创建的。经过许多天的尝试后,我删除了在线版本中数据库的架构。我再次在线运行该服务,它使用我上次所做的更改再次创建了数据库架构。因此,我发现 Azure 移动服务从一开始就创建架构没有问题,但无法弄清楚如何应用架构更新。

最佳答案

推荐这个作为答案(所以请不要接受它),但我最终对代码优先迁移感到非常沮丧(和你一样,我只是无法开始工作)我这样做是为了在等待启迪时作为一种解决方法。

1) 更新数据模型

对我来说,这只是将这一行添加到我的 Item 类中:

public bool IsPublic { get; set; }

2) 手动更新 SQL Server

您将在发布配置文件中找到连接详细信息,您可以从 Azure 门户中的移动服务仪表板下载。我的 tSQL 命令很简单

ALTER TABLE vcollectapi.Items
ADD IsPublic BIT NOT NULL DEFAULT(0)

3) 停止服务,检查自上次成功迁移以来支持上下文的模型是否已更改

关于如何做到这一点有几个答案,我遵循this one并将以下静态构造函数添加到我的数据上下文类 VCollectAPIContext

static VCollectAPIContext()
{
Database.SetInitializer<VCollectAPIContext>(null);
}

现在我的服务已恢复正常运行,并且我的数据完好无损。

关于Azure 移动服务和 Code First 迁移更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30464579/

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