如何使用Entity Framework Code First Migrations影响列顺序

Ste*_*veB 10 entity-framework entity-framework-4 entity-framework-4.3

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

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

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

我希望能够影响列的顺序,因为我不希望它只是附加到表,而是放在特定的索引.我以为我可以将它添加到我的modelBuilder配置中,例如:

Property(p => p.Discontinued).HasColumnOrder(2);
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*ndl 5

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

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

因此,不可能不费力地改变顺序(重新创建表格).例如,参见