使用EF 4.3 Code-First Migrations对列重新排序

时间:2012-04-04 15:09:44

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

在这里阅读两个演练:

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; }
}

将创建一个包含列顺序的表:

Id | Data2 | DATA3

更新类如:

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

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

Id | Data2 | Data3 | DATA1

任何人都知道在使用迁移时是否有指定列顺序的方法?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

根据MS文档:

Change Column Order in a Table

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