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

前端之家收集整理的这篇文章主要介绍了asp.net – 如何和在哪里调用Database.EnsureCreated和Database.Migrate?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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().

原文链接:https://www.f2er.com/aspnet/245498.html

猜你在找的asp.Net相关文章