我正在使用Entity Framework 4.3 Code First,并尝试了“迁移”功能。
如果将新属性添加到类中,然后从程序包管理器控制台窗口中运行“添加迁移”,则会得到以下信息:
public override void Up()
{
AddColumn("Products", "Discontinued", c => c.Boolean(nullable: false));
}
我希望能够影响列的顺序,因为我不希望将其仅附加到表中,而是放置在特定索引处。我以为我可以将其添加到modelBuilder配置中,例如:
Property(p => p.Discontinued).HasColumnOrder(2);
但是运行更新数据库似乎没有使用它。可以作为迁移来完成吗?
最佳答案
这只是缺少功能的问题。 SQL本身不依赖于任何隐式的列顺序(某些异常(exception):ORDER BY,...)。
SQL Server和ORACLE都没有直接的SQL DDL命令(又名ALTER TABLE...
)来移动列。
因此,不费吹灰之力就不可能更改顺序(重新创建表)。例如看
关于entity-framework - 如何通过 Entity Framework 代码优先迁移影响列顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9897040/