我有一个现有的模型,最初从这个模型生成了数据库,并用一些数据填充了现有的表。现在我已经为模型添加了一个新表。有没有办法从新模型更新数据库而不会丢失现有表中的所有数据?感谢。
答案 0 :(得分:21)
EF的默认数据库生成工作流程创建了一个完整的脚本,每次选择从模型生成数据库... 时都会重新创建数据库,因此如果在数据库中执行它,您将丢失所有数据。但是,如果您只是创建一个新实体并且没有更改现有实体,那么您仍然可以从模型中生成数据库,但是然后获取该脚本并仅运行为新实体创建新表的部分。
另一种方法是从Microsoft安装 Entity Designer Database Generation Power Pack ,但这并没有使它成为EF4.0版本。安装后,从模型生成数据库时,将数据库生成工作流更改为 生成迁移TSQL :