使用代码进行 Entity Framework Core 1.0 代码优先迁移?

2023-12-25

在实体框架的早期版本中,可以使用 DbMigrator 类以编程方式控制代码优先迁移(例如,检查并应用可用迁移)。该类是否仍然存在于某处或者是否有功能替代?我发现了一篇关于早期 RC 版本的帖子,其中指出了替代品,但 Core 1.0 中似乎也缺少该替代品。我可以通过 CLI 毫无问题地控制迁移,但我认为将需要针对自定义工具场景的代码内解决方案。


功能替换可以在几个地方找到,主要是在 Microsoft.EntityFrameworkCore.Migrations 命名空间中的 API 中。

一些值得一看的地方:

  • IHistoryRepository.GetAppliedMigrations() https://github.com/aspnet/EntityFramework/blob/1.0.0/src/Microsoft.EntityFrameworkCore.Relational/Migrations/IHistoryRepository.cs
  • IMigrator.Migrate(string targetMigration) https://github.com/aspnet/EntityFramework/blob/1.0.0/src/Microsoft.EntityFrameworkCore.Relational/Migrations/IMigrator.cs(这与调用相同DbContext.Database.Migrate() https://github.com/aspnet/EntityFramework/blob/1.0.0/src/Microsoft.EntityFrameworkCore.Relational/RelationalDatabaseFacadeExtensions.cs#L32-L33)
  • IMigrationAssembly https://github.com/aspnet/EntityFramework/blob/1.0.0/src/Microsoft.EntityFrameworkCore.Relational/Migrations/IMigrationsAssembly.cs查找当前迁移

除了IMigrator.Migrate,使用这些 API 通常意味着将服务从内部 EF Core 的服务容器。 https://docs.efproject.net/en/latest/miscellaneous/internals/services.html这是通过调用来完成的.GetService<TService>()在你的数据库上下文中。

Example:

var migrator = context.GetService<IMigrator>().Migrate();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用代码进行 Entity Framework Core 1.0 代码优先迁移? 的相关文章

随机推荐

  • 记录多实例应用程序最佳实践?

    我终于在我的 WPF 桌面应用程序中尝试了 log4net 我正在努力解决 RollingFileAppender 没有对多实例应用程序的内置支持这一事实 我不喜欢仅仅为了让记录器高兴而将应用程序限制为单个实例的想法 单实例技巧都是丑陋的技
  • 我可以从服务器将多个 zip 文件下载到一个 zip 文件中吗?

    我想从服务器下载多个 zip 文件 并在下载所有 zip 文件时附加并从服务器下载为一个 zip 文件 将所有 zip 文件打包到例如当前目录并将其发送到浏览器 尝试 header Content Type archive zip pass
  • 我怎样才能安全地向上转型可选? [复制]

    这个问题在这里已经有答案了 假设我有一个Optional
  • 在 Julia-lang 中生成热图的子图

    我正在尝试生成一个具有多个热图 根据单元格值具有颜色阴影的矩阵 的图形 图 眼下using Plots pyplot and heatmap mat 足以生成热图 我不清楚如何用更多的东西来制作一个图形 看完这个页面后示例子图 https
  • 如何分析约 13GB 的数据?

    我有大约 300 个文本文件 其中包含有关跟踪器 种子和对等点的数据 每个文件的组织方式如下 跟踪器 txt time torrent time peer time peer time torrent 我每个跟踪器有几个文件 并且许多信息是
  • 翻转关联数组并将新值存储在子数组中以防止丢失重复值

    我有一个可能包含重复值的平面关联数组 Array for juniors gt product category for men gt product category coats gt product category for women
  • 删除 .vagrant 文件后如何销毁虚拟机?

    我删除了包含 vagrant 文件的目录 当我安装新的虚拟机时 它抱怨端口正在使用中 那么如何在没有 vagrant 文件的情况下销毁虚拟机呢 以下 VirtualBox 命令可能会有所帮助 如果关闭电源不起作用 请尝试取消注册虚拟机 VB
  • 未捕获的类型错误:(0,_firebase.auth)不是函数

    尝试在 React 应用程序中使用 Firebase 身份验证 我按照 firbase 文档中的说明进行操作 使用 npm 安装 firebase 添加了 firebase js 文件 import as firebase from fir
  • GCP Cloud SDK 在 MAC 中安装失败

    无法使用从 gcloud 下载的包 google cloud sdk 307 0 0 darwin x86 64 tar gz 安装 gcloud sdk 支持的 Python 版本为 3 5 至 3 7 以及 2 7 9 或更高版本 这是
  • 使用 Ajax 的 URL 操作参数

    我正在尝试使用参数将数据从视图传递到控制器 现在我遇到了一些困难 一旦我从表中选择一行并按下具有 ShowTasks 的 onclick 方法的按钮 我就尝试传递这些参数 C 控制器 Route service delivery id sh
  • NullPointerException:println 需要一条消息[重复]

    这个问题在这里已经有答案了 我知道我有一个空指针 但我不知道它出现在哪里或为什么 希望在这里能得到一些帮助 Button add Button findViewById R id addfencebutton add setOnClickL
  • 使用WebView.goBack()方法时如何重新发送POST数据?

    我正在开发一个应用程序 我们为用户提供导航回用户之前查看过的网页的选项 当用户导航回包含 POST 数据的页面时 就会出现问题 我不知道如何检测 WebView 中加载的页面是否有 POST 数据 以便应用程序可以提示确认对话框 无论他是否
  • CodeIgniter 中的 set_value() 默认值

    我使用 formigniter 生成 CI 表单 http formigniter org http formigniter org 那一点效果很好 但是我想为名称字段设置默认值 输入代码如下所示
  • tput cols 在脚本中无法正常工作

    我在脚本中使用 tput cols 一切正常 除非窗口最大化 我的脚本能够正确获取任何窗口大小 但是当窗口最大化时 它会得到错误的值 80 然后我直接在终端中输入 tput cols 然后得到正确的大小 158 所以我的问题是 即使窗口最大
  • ASP.NET 和 Visual Studio - 添加项目引用与 Bin 文件夹 DLL

    我昨天刚刚开始一份新工作 这只是我在 ASP NET 方面的第二份工作 我们正在设置我的开发盒 并且在使用一些第三方组件 例如 Telerik 等 时遇到了问题 我注意到他们安装了这些第三方工具 寻找 DLL 文件 将它们复制到 bin 中
  • cakephp auth组件,使用两种模型

    我的网站有一个供员工使用的公共部分和一个供管理员使用的后端 它使用两种不同的模型 员工模型和管理员模型 我想使用身份验证组件进行员工登录和管理员登录 我知道如何设置 Auth 组件以使用默认用户模型以外的模型 但是我可以让身份验证组件使用两
  • Python——检查对象是否是某个模块中任何类的实例

    需要一种方法来检查对象是否是某个特定模块中任何类的实例 我知道我可以通过从该模块显式导入每个类并检查元组来做到这一点 from my module import ClassOne ClassTwo gt gt gt isinstance m
  • RabbitMQ 和 ActiveMQ 在同一台机器上运行

    出于测试目的 我需要在同一台 Windows 计算机上运行 ActiveMQ 和 RabbitMQ 我已经安装了两者 但无法一起运行它们 我需要停止一项服务才能运行另一项服务 这是我尝试启动运行 ActiveMQ 的 RabbitMQ 时遇
  • 在 Laravel 中迁移表时出现“SQLSTATE[HY000] [2002] No such file or directory”错误

    当我尝试使用 php artisan migrate 命令迁移 Laravel 5 中的表时 出现以下错误 SQLSTATE HY000 2002 中没有这样的文件或目录 vendor laravel framework src Illum
  • 使用代码进行 Entity Framework Core 1.0 代码优先迁移?

    在实体框架的早期版本中 可以使用 DbMigrator 类以编程方式控制代码优先迁移 例如 检查并应用可用迁移 该类是否仍然存在于某处或者是否有功能替代 我发现了一篇关于早期 RC 版本的帖子 其中指出了替代品 但 Core 1 0 中似乎