初始化数据库
2021/10/5 2:10:53
本文主要是介绍初始化数据库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
创建数据库
在程序启动初,创建数据库。
不存在数据库才创建
Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>()); using (MyContext mcx = new MyContext()) { mcx.Database.CreateIfNotExists(); }
如果Mysql已经存在与MyContext对应的数据库名称相同的数据库,则不创建数据库。否则,创建。
当我们修改了Model,启动程序后,数据库不会跟着自动更新。如果我们尝试增删查改数据库,Entity Framework会出错。我们只能删除数据库,再次启动程序,才会删除旧数据库重新生成与Model一致的数据库,显然,这种方式会导致原有的生产数据丢失。
我们可以在修改Model后,自己手动去修改数据库的表结构,保持其与修改后的Model一致,这样数据库中原有的数据就不会丢失了。
每次启动程序都新建
Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>()); using (MyContext mcx = new MyContext()) { mcx.Database.Initialize(true); }
每次重启程序,都会删除已存在的数据库,然后新建一个数据库。
Model更新自动新建
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyContext>()); using (MyContext mcx = new MyContext()) { mcx.Database.Initialize(true); }
如果我们修改了Model,启动程序时会检查我们的Model是否发生了变化,如果变化了,便会删除现在的数据库,然后新建一个与当前Model一致的数据库。
注意:每次修改Model,都会导致原有的数据库数据被删除。
我们可以在修改Model后,自己手动去修改数据库的表结构,保持其与修改后的Model一致,这样数据库中原有的数据就不会丢失了。
这篇关于初始化数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南