加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何和在哪里调用Database.EnsureCreated和Database.

发布时间:2020-12-15 20:49:17 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP.NET MVC 6应用程序,我需要调用 Database.EnsureCreated和Database.Migrate方法. 但我应该在哪里叫他们? 解决方法 我认为这是一个重要的问题,应该很好的回答! 什么是EnsureCreated? EnsureCreated是新的EF核心方法,可确保上下文的数据库存在.
我有一个ASP.NET MVC 6应用程序,我需要调用 Database.EnsureCreated和Database.Migrate方法.

但我应该在哪里叫他们?

解决方法

我认为这是一个重要的问题,应该很好的回答!

什么是EnsureCreated?

EnsureCreated是新的EF核心方法,可确保上下文的数据库存在.如果存在,则不采取任何行动.如果不存在,则创建数据库及其所有模式,并确保它与该上下文的模型兼容.

注意:
此方法不使用迁移来创建数据库.此外,无法使用迁移更新创建的数据库.如果要定位关系数据库并使用迁移,可以使用DbContext.Database.Migrate()方法来确保创建数据库,并应用所有迁移.

我们如何使用EF 6?

确保被处理相当于EF 6的下列方法:

软件包管理器控制台

启用迁移 – 启用自动迁移.添加迁移/更新的数据库.
>从代码:

Database.SetInitializer CreateDatabaseIfNotExists

要么

使用DbMigrationsConfiguration并设置AutomaticMigrationsEnabled = true;

什么是Database.Migrate?

将上下文的任何挂起迁移应用于数据库.如果数据库不存在,将创建数据库.

我们如何使用EF 6?

context.Database.Migrate()等效于EF 6的下列方法:

软件包管理器控制台

更新数据库 – 目标迁移
>使用自定义DbMigrationsConfiguration:

AutomaticMigrationsEnabled = false;或使用DbMigrator.

结论:

如果您正在使用迁移,则有context.Database.Migrate().如果您不想要迁移,并且只需要一个快速数据库(通常用于测试),请使用context.Database.EnsureCreated()/ EnsureDeleted().

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读