EntityFramework CodeFirst 新增表字段的问题

changyutongy 2015-06-25 04:03:49
在使用EntityFramework的过程中,我选择了Code First的方式,创建实体类=>对应上下文=>映射到数据库
在第一次的时候,是没有什么问题的

但是假如我创建了表A,当我需要在表A中新增两个字段,就无法仅仅是通过向实体类中新增两个属性那么简单了

请各位朋友指教一下,EntityFramework CodeFirst的方式,如何动态修改数据库和表
...全文
724 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
盐炒白糖 2015-07-02
  • 打赏
  • 举报
回复
如果要保留数据,不要用EF去创建数据库,直接去数据库改数据库,update。 再往CodeFirst加字段。就好了,个人建议研发阶段不要追求用代码生成数据库。 真正部署的时候准备sql文件好多了。毕竟如果项目职责分得更清晰的话,代码连接数据库的用户是没有创建修改数据库权限的。
changyutongy 2015-06-25
  • 打赏
  • 举报
回复
非常感谢您的回复 帮助非常大 点数少许 请笑纳
一枚大帅哥 2015-06-25
  • 打赏
  • 举报
回复
一般都是 Database First 再用对比工具覆盖生产的三层。 Code First 好用吗? 还是直接在数据库Alter Table 比较好
zl289kkk 2015-06-25
  • 打赏
  • 举报
回复
EF数据库迁移可以参考。 http://www.cnblogs.com/haogj/archive/2012/02/17/2356537.html
zl289kkk 2015-06-25
  • 打赏
  • 举报
回复
像你说的这种情况,在项目运营过一段时间后(已经产生有大量数据), 如果变动比较小,比如新增或删除一两个字段 先备份好数据库以后 直接进行数据表操作,将你的数据模型和数据库表做上对应就好了, 需要注意的是,项目上线一般需要将DataContext设置一下 Database.SetInitializer<DataContext>(null); 而不能设置 Database.SetInitializer<DataContext>(new DropCreateDatabaseIfModelChanges<DataContext>());或者 Database.SetInitializer<DataContext>(new DropCreateDatabaseAlways<DataContext>());等等其他方式, 以防意外导致数据库被删除,重新生成(因为自己添加字段可能与你的模型映射不一致) 如果改动非常大,那么可能就要换另外一种方案了,数据迁移,或者自己导入数据。
changyutongy 2015-06-25
  • 打赏
  • 举报
回复
引用 1 楼 zl373946618289 的回复:
[quote=引用 楼主 changyutongy 的回复:] 在使用EntityFramework的过程中,我选择了Code First的方式,创建实体类=>对应上下文=>映射到数据库 在第一次的时候,是没有什么问题的 但是假如我创建了表A,当我需要在表A中新增两个字段,就无法仅仅是通过向实体类中新增两个属性那么简单了 请各位朋友指教一下,EntityFramework CodeFirst的方式,如何动态修改数据库和表
我们是这么做的,建立一个初始化数据库的项目(控制台就可以),这个项目包含项目初始化的一些操作,比如初始化基础数据等等。每次如果数据模型改变以后,就把数据库删除,然后重新运行一下初始化数据库项目就好了。[/quote] 非常感谢您的回复,可是我怕的就是这个,以前的数据怎么办呢? 再通过其他办法导入吗
zl289kkk 2015-06-25
  • 打赏
  • 举报
回复
引用 楼主 changyutongy 的回复:
在使用EntityFramework的过程中,我选择了Code First的方式,创建实体类=>对应上下文=>映射到数据库 在第一次的时候,是没有什么问题的 但是假如我创建了表A,当我需要在表A中新增两个字段,就无法仅仅是通过向实体类中新增两个属性那么简单了 请各位朋友指教一下,EntityFramework CodeFirst的方式,如何动态修改数据库和表
我们是这么做的,建立一个初始化数据库的项目(控制台就可以),这个项目包含项目初始化的一些操作,比如初始化基础数据等等。每次如果数据模型改变以后,就把数据库删除,然后重新运行一下初始化数据库项目就好了。

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧