日期:2014-05-20  浏览次数:20990 次

entityframework4.4数据迁移的奇怪现象
更新本机数据库结构,可以用Update-Database方法。
但是如果项目打包给用户使用,这个程序如何识别到需要更新用户的数据库?
难道是把AutomaticMigrationsEnabled = true;就可以?



正常来说,不用迁移技术,添加新字段,编译会提示出错,说和数据库字段对应不上。
但是不知道弄了什么之后,编译不会错了,而是自动删除了数据库重建新数据库。这是为什么?
试了N次都是这样。
PS:     重建数据库后__MigrationHistory表没有动过。但是依然出现这个情况。


其实这2个问题最担心,就是怕出现在客户的电脑,新打包的程序直接把用户之前用的数据库给重建了就麻烦。
------解决方案--------------------
数据库除了迁移方法,还有初始化方法:
DbContext.Database.SetInitializer...
如果在已有数据库上修改模型要慎用,有直接重新删除重建,有模型更改后删除重建等几种方式,新的版本还有自动迁移方式。