【发布时间】:2012-03-27 20:18:50
【问题描述】:
我正在使用 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 似乎并没有使用它。这可以作为迁移完成吗?
【问题讨论】:
-
a) 如果不进行大量黑客攻击,就无法插入先前的列,b) 您不应该使用“软删除”将不推荐使用的数据保留在数据库中 - 查看归档已弃用的数据。
-
数据库表中的列按特定顺序排列有什么意义?它只是一个数据存储。
-
仅出于审美目的,仅此而已。您可以在使用模型构建器创建数据库时指定它,所以只是想知道在迁移过程中添加新列时是否可以。没什么大不了的。
-
对我来说,这是一个大问题。我正在设置一个 Code First 模型来匹配现有的(巨大的)数据库。 CF 工具不允许您对新建的数据库强制执行顺序,并且模式比较工具似乎不允许您忽略列顺序。有数百张桌子,我只需要几天而不是几个小时。
标签: entity-framework entity-framework-4 entity-framework-4.3