entity-framework - 修改 Entity Framework 迁移是否安全,以便以不同的方式执行而不是删除并重新创建索引?

标签 entity-framework azure entity-framework-migrations clustered-index

Azure不支持“堆”表,因此我无法“删除”主索引。

EntityFramework 生成需要删除然后重新创建索引的迁移。在运行迁移之前,对其进行修改是否安全,以便将数据复制到具有新索引的新表,删除旧表,然后将新表重命名为旧表的名称,而不是删除并重新创建索引?

数据库的最终状态最终是相同的,所以我认为这是一个安全的更改。

模型快照等应该都是相同的。

最佳答案

我们定期修改迁移以创建附加索引或创建 View 而不是表。

public override void Up() {
    Sql(@"CREATE VIEW ... ");
}

public override void Down() {
    Sql(@"DROP VIEW ... ");
}

只要数据库的最终状态与您的模型兼容,它就是安全的。您应该只注意迁移的“向下”部分。如果您有机会运行它,您不仅应该修改迁移中的 Up 方法,还应该修改 Down 方法。

关于entity-framework - 修改 Entity Framework 迁移是否安全,以便以不同的方式执行而不是删除并重新创建索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33812474/

相关文章:

c# - 如何使用 C#、Entity Framework 和 SQL Server 2008 读取/写入地理数据?

azure - 如何在 Azure 函数中手动将调用标记为失败?

php - 在 Azure 中运行 Fuel Php

entity-framework-core - 选择特定的 Entity Framework 7(核心 1)代码迁移

entity-framework-migrations - 当 key 位于基类中时,EF 迁移 DropForeignKey 失败

c# - EF : Should I include foreign key ID's in my entities?

LINQ实体查询性能

c# - 带有 IdentityDbContext 的 EF6 多对多无效列名

azure - 从azure应用程序服务访问虚拟机上的服务

c# - 当我映射 ProjectId 属性时,代码首先尝试添加 Project_Id 列