entity-framework - 如何使用 Entity Framework 代码优先迁移影响列顺序

标签 entity-framework entity-framework-4 entity-framework-4.3

我正在使用 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...)来移动列。

因此,不费吹灰之力就不可能更改顺序(重新创建表)。见例如

  • How To change the column order of An Existing Table in SQL Server 2008
  • SQL SERVER – Change Order of Column In Database Tables
  • https://dba.stackexchange.com/questions/61978/how-to-change-the-column-order
  • 关于entity-framework - 如何使用 Entity Framework 代码优先迁移影响列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9897040/

    相关文章:

    entity-framework-4 - 在多个项目中共享相同的(.edmx 模型)

    asp.net-mvc-3 - XXXX 不再使用。 <see cref ="EdmModelDiffer"/> 现在用于检测模型中的更改

    entity-framework - 英孚 CF : complex types for legacy database

    c# - Linq To Entities 在 where 子句中进行错误的 SQL 转换

    sql-server-2008 - Entity Framework 4 Code First - 防止数据库删除/创建

    c# - 如何在 Entity Framework 中设置两个相同类型的导航属性

    .net - Entity Framework 4.3 : 'update-database' when configuration files are separated

    entity-framework - EF( Entity Framework )4.3 迁移工具不适用于 EF 4.1 DB

    c# - 使用 LINQ 到具有集合属性的实体的最佳方式

    c# - Entity Framework Include() 在复杂查询中不起作用