Add-Migration如何比较当前模型以发现差异

本文关键字:模型 发现 何比较 比较 Add-Migration | 更新日期: 2023-09-27 18:01:18

我正在学习使用EF Code First Migrations from https://msdn.microsoft.com/en-us/data/jj591621.aspx

某处写着:

Code First Migrations有两个您将要使用的主要命令熟悉。

Add-Migration将根据您的更改构建下一次迁移自从上次迁移被创建以来,对您的模型所做的

Update-Database将把所有挂起的迁移应用到数据库。

我不明白Add-Migration到底在做什么。更准确地说,我的问题是:

自从上次迁移创建以来

为了创建一个迁移,它应该选择两个数据库结构进行比较。显然,一边是代码中模型的当前结构。但是另一面是什么呢?选项为:

  1. 通过统一从初始迁移到最后一次迁移的所有迁移来填充数据库结构?
  2. 将其与具有旧结构的数据库进行比较?

Add-Migration如何比较当前模型以发现差异

检查迁移文件背后的代码—它们包含大量元数据,包括创建模型时的快照。

因此,当您运行Add-Migration时,进程大致如下:

  1. 基于你的代码构建一个模型
  2. 从上次迁移中找到以前的模型(如果适用)
  3. 比较两种模型
  4. 根据差异生成迁移