时间:2021-07-01 10:21:17 帮助过:2人阅读
一 防数据库删除
将你的业务DbInitializer的基类改成CreateDatabaseIfNotExists即可解决这个问题,这是在数据初始化时需要做的事,一般地,我们会选择当实体有变化时,自动更新数据库,但这样做影响比较大,所以我们不提倡使用.
public class ManagerInitializer : CreateDatabaseIfNotExists<ManagerContext> { protected override void Seed(ManagerContext context)
{ //初始化代码 } }
二 数据迁移
这个问题也是必须要解决的,我们的实体添加后,数据库并没有对应的表,我们就需要使用migrations命令来对数据库进行更新,具体操作如下
1 开启migrations功能
enable-migrations -force
2 更新数据库
update-database
3 程序运行成功后,如图
这时你查看自己的数据库,新加的实体已经自动添加到数据库了,呵呵.
值得注意的是,通过这种方法进行数据库迁移,数据库的原数据是不会丢失的,即使你在原来的表上添加字段,老数据也不会丢,新字段会有默认值.
对于EF7来说,它只支持Code First模式,所以这种模式在dotnet框架里将会成为主流!
回到目录
EF架构~CodeFirst数据迁移与防数据库删除
标签: