根据现有数据库生成CodeFirst之后,再更改在数据库结构,如何使代码与数据库同步?

80713166@qq.com Entity Framewor... 最后由 qq_bwitmug2 于2017年08月21日回复

  • 5 回答
  • 3.7k 浏览

老师,您好!

我在实际项目中遇到个问题,如下:

我们已经数据库,数据表之间有相互的主键外键关联。

根据现有数据生成CodeFirst,并在code中增加了标签描述。

之后因为有新的需求变更,需要在数据库中增加新表或增加字段,如何使代码与数据库同步?

我现在的做法是,把所有原来生成的CodeFirst代码删掉,重新生成CodeFirst代码,但是原来写的东西又要重写了。有什么解决办法呢?

在线等。谢谢!

  • 80713166@qq.com 2015年08月19日 回答 #2楼
  • 老师,我的问题是在数据库中已经增加或变更的表结构

    然后怎么同步更新到C#代码的DbContext和相应的Entity类?

  • 0 评论
  • zjyyy1 2016年09月23日 回答 #4楼
  • 或者使用migrations功能来完成对表结构的更改

    1. Tools -> Library Package Manager -> Package Manager Console

    输入Enable-Migrations

    2.当你修改完某个model,在 package manager console 中输入Add-Migration yourchangname

    会有对应的文件生成

    3.Update-Database 这个命令会把你对实体的更改 通过 migration文件对应的对数据库进行修改

  • 0 评论
  • qq_bwitmug2 2017年08月21日 回答 #5楼
  • 打开configuation.cs,作出如下修改:

     public Configuration()

            {

                AutomaticMigrationsEnabled = true;

            }

    然后再一次执行Update-Database

  • 0 评论