【问题标题】:Reorder columns with EF 4.3 Code-First Migrations使用 EF 4.3 代码优先迁移对列重新排序
【发布时间】:2012-04-04 15:09:43
【问题描述】:

在此处阅读两个演练:

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx

我找不到指定 SQL 数据表中列顺序的方法。看起来最后添加的属性总是映射到最后一列。

例子:

public class SampleData {
    public int Id { get; set; }
    public string Data2 { get; set; }
    public string Data3 { get; set; }
}

将创建一个具有列顺序的表:

标识 |数据2 |数据3

更新类如:

public class SampleData {
    public int Id { get; set; }
    public string Data1 { get; set; }
    public string Data2 { get; set; }
    public string Data3 { get; set; }
}

然后运行 ​​update 会将表更新为:

标识 |数据2 |数据3 |数据1

有人知道在使用迁移时是否可以指定列顺序?

【问题讨论】:

  • 您担心的具体场景是什么?使用较小的增量迁移。您可以尝试手动编辑迁移,也可以尝试 Update-Database -script 看看到底发生了什么。或者手动映射列,在这种情况下,我认为您可以根据需要订购它们(未确认)。这样的东西会起作用吗?我没有像@Ladislav 提到的那样完全遵循这里的“需求”。从早期开始,订购就是“问题”,因为我认为这不是优先事项。

标签: c# entity-framework entity-framework-4 ef-code-first entity-framework-migrations


【解决方案1】:

除了创建新表并将所有数据从旧表移动到新表之外,别无他法。数据库中列的顺序并不重要 - 您可以根据需要对应用程序和 UI 进行排序。

【讨论】:

  • 这是一个简单的数据库,我计划有时使用 SQL Management Studio 手动编辑条目,这就是我关心顺序的原因。你有多确定这是不可能的?无论如何,如果我 2 天没有得到另一个答案,我会接受你的。
【解决方案2】:

根据 MS Docs:

Change Column Order in a Table

...无法使用 Transact-SQL 语句执行此任务。

【讨论】:

    猜你喜欢
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 2012-03-06
    • 2012-09-15
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多