在实体框架中保持数据完整性的同时重命名导航属性

时间:2014-03-12 14:20:37

标签: entity-framework

订单表格与用户表(不同类型的用户)包含多个外键

订单实体有多个属性,表示用户表的键。

问题是这些导航属性被命名为User1,User2,User3等......

有没有办法更新这些属性的名称并在更新数据模型时保持它们完好无损?

例如,有些时候在开发过程中,如果我对这个表进行了更改,我有时会从模型中删除表,更新和重建等。

我想我只需要手动重命名这些属性,如果我更新表和数据模型,或者还有其他方法,请记得这样做吗?

1 个答案:

答案 0 :(得分:0)

使用 db-migration 功能可帮助您实现这一目标。优点是它可以帮助您存档在开发过程中所做的更改。对于每个更改,您都有一个表示数据库发生更改的类。

启用项目迁移后

首先关闭自动更新

    public Configuration()
    {
        AutomaticMigrationsEnabled = false;
    }

然后使用 code-first migration 生成迁移类。在包管理器中写这个:

add-migration renameColumns

然后编辑创建的类以使用重命名替换添加/删除。

   public override void Up()
    {
        RenameColumn("Orders", "OldColumn", "NewColumn");

最后在包管理器中运行update命令来实现数据库

  Update-Database