我正在使用 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 似乎没有使用它。这可以作为迁移完成吗?
最佳答案
这只是缺少功能的问题。 SQL 本身不依赖于任何隐式的列顺序(有一些异常(exception): ORDER BY ,...)。
SQL Server 和 ORACLE 都没有直接的 SQL DDL 命令(又名 ALTER TABLE...
)来移动列。
因此,不费吹灰之力就不可能更改顺序(重新创建表)。见例如
关于entity-framework - 如何使用 Entity Framework 代码优先迁移影响列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9897040/