如何在实体框架中进行迁移?

Posted

技术标签:

【中文标题】如何在实体框架中进行迁移?【英文标题】:How do I make migrations in Entity Framework? 【发布时间】:2021-08-23 21:34:17 【问题描述】:

我的研究一直告诉我使用Migrate.exe,它没有出现在我的项目中,也无法在任何地方下载。我也在使用 VS Code 而不是 Visual Studio,这似乎使得无法使用包管理器控制台。

而且我使用的是 Entity Framework - 而不是 Entity Framework Core - 所以我没有 EFC 的所有选项。

目前我正在尝试在游戏引擎 Unity 中设置实体框架。可以使用 Entity Framework v6.2.0 设置一个临时项目并运行 dotnet pack 以获取 EntityFramework.dll,但它不会创建 Migrate.exe。它似乎是创建迁移的唯一选择。

你们中有人知道如何获取Migrate.exe 文件或其他添加迁移的方法吗?

【问题讨论】:

【参考方案1】:

当您使用 NuGet 安装 Entity Framework 时,migrate.exe 将位于下载包的工具文件夹中。在 \packages\EntityFramework.\tools

来源是microsoft

你试过了吗?

【讨论】:

遗憾的是,该链接没有解释如何实际安装 EntityFramework,但它确实让我看到了尝试安装而不是我一直在做的事情。【参考方案2】:

显然安装和添加是有区别的,并不是说当你在 nuget.org 上查看包时他们提到了这一点。

所以与其运行dotnet add package EntityFramework --version 6.2.0 我需要从 nuget.org 下载最新的 nuget.exe 并在根文件夹中创建一个 packages.config 文件。

然后我运行nuget.exe install packages.config -OutputDirectory packages,它安装了我需要的所有文件。

packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="EntityFramework" version="6.2.0" targetFramework="net40" />
</packages>

【讨论】:

以上是关于如何在实体框架中进行迁移?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 和 WPF 中的实体框架中创建数据库和表?

如何使用实体框架回滚迁移的正确方法

实体框架迁移 - 如何创建单元测试以确保迁移模型是最新的?

独立于模式的实体框架代码优先迁移

实体框架 - 迁移 - 代码优先 - 每次迁移播种

无法在 .NET 中的实体框架代码优先方法中迁移 AspNetUser 实体