在EF Core中,如何检查是否需要迁移?

2024-02-11

我在 Xamarin.iOS 应用程序中使用 Entity Framework Core。

在我的核心项目中,包含在 iOS 应用程序和其他应用程序之间共享的代码 (.netstandard 2.0),我想知道是否需要迁移,以便我也可以执行一些其他操作。

这是上下文:

public void Initialize()
{
   using (var dbContext = new MyDbContext(m_dbContextOptions))
   {
       --> bool isNeeded = demoTapeDbContext.Database.IsMigrationNeeded()

       demoTapeDbContext.Database.Migrate();
   }
}

我发现的最接近的是调用该方法GetPendingMigrationsAsync()并检查待处理迁移的数量,但我不确定这是否是在实体框架中进行此类检查的最安全方法:

public async Task InitializeAsync()
{
   using (var dbContext = new MyDbContext(m_dbContextOptions))
   {
       bool isMigrationNeeded = (await demoTapeDbContext.Database.GetPendingMigrationsAsync()).Any();

       demoTapeDbContext.Database.Migrate();
   }
}

你是对的GetPendingMigrationsAsync方法是你应该使用的。从the docs https://learn.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.relationaldatabasefacadeextensions.getpendingmigrationsasync?view=efcore-2.0:

异步获取程序集中定义但尚未应用于目标数据库的所有迁移。

如果你看the code https://github.com/dotnet/efcore/blob/594a626af9c6e3f090723768856557eede022e24/src/EFCore.Relational/Extensions/RelationalDatabaseFacadeExtensions.cs#L85,您可以追踪它是如何工作的。如果获取程序集中定义的所有迁移,并删除通过查询数据库找到的迁移。

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

在EF Core中,如何检查是否需要迁移? 的相关文章

  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 如何检查位图的颜色深度?

    我正在开发一个打印图像文件文件夹的应用程序 包括 JPEG 和 TIFF TIFF 图像通常是黑白 1bpp 加载图像后 我想确定图像是否是Color or B W or 灰度这样我就可以将图像发送到正确的打印机 彩色打印机或黑白打印机 我
  • 如何在 Jenkins 中创建用户并将其添加到组中进行身份验证?

    我选择使用 Jenkins 自己的用户数据库 安全领域进行用户登录 因为我无法在公司中使用 LDAP 当您决定将主机名或端口号更改为其他名称时 Google 的 OpenID 就会出现问题 为了安全起见 我使用 基于项目的矩阵授权策略 模式
  • 使用 Conda 环境、VS Code 终端和 Python 扩展 (v2023.16) 时,“.”插入到 PATH 环境变量中

    我正在尝试将 conda python 与 VS Code 一起使用 我在集成终端中使用的 shell 是 PowerShell 在 Windows 终端中一切正常 但在我重新启动 vscode 终端后 每个 conda 命令在 vscod
  • 使用 SFINAE 检测相同的类继承

    我正在尝试编写一个元函数来检查作为可变参数模板参数传递的所有类型是否不同 似乎执行此操作的最有效方法是从一组类继承并检测是否存在错误 问题是下面的代码编译失败 而我希望 SFINAE 能够工作 Edit 问题不是 如何编写该元函数 而是 如
  • 使用clock_gettime()的正确方法是什么?

    我在 C 程序中尝试这个函数 它总是打印错误的时间 这是我目前的代码 include
  • MySQL 大圆路口(两条路交叉吗?)

    MySQL OpenGIS CROSSES 似乎不适合我 SET ls LineString 1 1 2 2 3 3 SET xx LineString 0 2 10 2 SELECT AsText EndPoint GeomFromTex
  • 使用C++对ipv6地址进行比较运算

    由于 IPV6 地址有 16 个字节 并且它们没有数据类型可以在 C 中存储它 我想存储 IPV6 地址 并在 IPv6 地址之间进行一些比较 请让我知道该怎么做 您可以将它们存储为普通数组unsigned char就像你在 C 中所做的那
  • 如何增加数据集的采样频率(重塑、插值?)并用均值填充 Nan 值

    我有一个样本频率不均匀的数据集 如该子集所示 time date x y id nn1 nn2 0 2019 09 17 08 43 06 234 236 4909 22 02271554554524 38 2099463490856 0
  • Visual Studio 中 Lambda 的模板变量错误?

    c 14 questions tagged c 2b 2b14提供变量模板 http en cppreference com w cpp language variable template哪个工作得很好视觉工作室2017 question
  • Google Sheets v4 更新效果 JSON 端点数据?于 2021 年 6 月 8 日关闭

    我读了这个article https developers google com sheets api v3关于 Google Sheet API v4 更新 我需要改变当前的代码结构吗 我在用简单的 JSON 数据 https sprea
  • Java中的LinkedListNode是什么

    请原谅我的无知 但我正在开始准备我的第一次技术面试 并在主题链接列表上遇到了这个问题和答案 问题 实现一种算法来删除单个链表中间的节点 并且只能访问该节点 public static boolean deleteNode LinkedLis
  • 使用 JavaScript 循环移动 Div

    是否可以使用 JavaScript 循环旋转 Div 我的 HTML 页面中有四个 DIV 我需要循环旋转这些 DIV 其实并不难 function moveDiv t mdiv t t 0 05 time var r 10 radius
  • srand(time(NULL)) 生成类似的结果[重复]

    这个问题在这里已经有答案了 我不明白为什么 srand 生成如此相似的随机数运行之间 我正在尝试运行以下代码 srand time NULL int x rand cout lt lt x lt lt endl 然而 我最终得到的不是一个适
  • JSF:将字符串添加到列表中

    我有一个 JSF 2 0 应用程序 它有一个保存字符串列表的 bean 我想添加字符串
  • 修饰类或参数意味着什么?

    装饰或向类或参数添加属性意味着什么 目的是什么以及我什么时候这样做 欢迎提供资源链接和直接答案 当您在 C 中添加装饰器时 就像向类 方法添加属性一样 它会附加一个属性 如果你编写单元测试你会遇到一个简单的装饰器TestMethod像那样
  • Google Cloud Run 内存限制是否适用于容器大小?

    对于云运行的内存使用情况 请参阅文档 https cloud google com run docs configuring memory limits https cloud google com run docs configuring
  • IronPython WPF 与 RevitPythonShell

    我根据我在 stackoverflow 上找到的代码片段编写了此脚本 但在运行时出现此错误 System InvalidOperationException 无法创建多个 同一 AppDomain 中的 System Windows App
  • 渲染传递局部变量的模板时出现问题

    我正在运行 Ruby on Rails 3 我想渲染一个模板 show html erb 传递局部变量 In RAILS ROOT views users show html erb I have Name Surname 我还有一个页面控
  • xna 中的大型多人游戏

    您对 xna 和大型多人游戏有何看法 例如服务器和 100 个客户端 有没有关于如何在 xna 中创建客户端服务器应用程序的好教程 当然有关于如何做到这一点的教程 我个人使用 Lidgren 作为我的在线原型 我只对 4 个人进行了测试 服
  • 在EF Core中,如何检查是否需要迁移?

    我在 Xamarin iOS 应用程序中使用 Entity Framework Core 在我的核心项目中 包含在 iOS 应用程序和其他应用程序之间共享的代码 netstandard 2 0 我想知道是否需要迁移 以便我也可以执行一些其他