10

我正在使用 Entity Framework 4.3 Code First 并尝试迁移功能。

如果我向我的类添加一个新属性,然后从包管理器控制台窗口运行 Add-Migration,我会得到如下信息:

    public override void Up()
    {
        AddColumn("Products", "Discontinued", c => c.Boolean(nullable: false));
    }

我希望能够影响列的顺序,因为我不希望它只是附加到表中,而是放在特定的索引处。我想我可以将它添加到我的模型构建器配置中,例如:

Property(p => p.Discontinued).HasColumnOrder(2);

但运行 Update-database 似乎没有使用它。这可以作为迁移来完成吗?

4

1 回答 1

5

这只是缺少功能的问题。SQL 本身不依赖于任何隐含的列顺序(有一些例外: ORDER BY ,...)。

SQL Server 和 ORACLE 都没有直接的 SQL DDL 命令(又名ALTER TABLE...)来移动列。

因此,不费吹灰之力就不可能更改顺序(重新创建表)。参见例如

于 2015-03-22T23:30:13.313 回答