【问题标题】:How does Entity Framework know which migration to add?Entity Framework 如何知道要添加哪个迁移?
【发布时间】:2022-01-22 12:35:39
【问题描述】:

我正在尝试在实体框架的帮助下进行设置,而无需处理 SQL 的代码相关部分。

我创建了一个模型并通过包管理器控制台添加了一个迁移,一切正常,它更新并创建了表。

我想问的是实体如何知道我要添加哪个迁移。

我用过:

add-migration (and put here the name of the migration file)

但我不明白的是,它怎么知道我的桌子需要哪种型号?

或者换句话说,如果我在进行任何迁移之前有 2 个模型,会选择哪个模型?

如果有人可以帮助我,我将不胜感激。

提前致谢

【问题讨论】:

    标签: sql-server entity-framework-core asp.net-core-mvc


    【解决方案1】:

    您似乎正在使用entity framework migrations 并且对它的工作原理感到困惑。以下是解释:

    Question: But the thing I don't understand how does it know which model I want for my table?

    • 如果您查看您的项目文件夹,则有该目录 Migrations。里面写的都是migrations history logs 当我们对数据模型进行任何更改时,EF Core 会将当前模型与旧模型的快照进行比较以确定 差异,并生成迁移源文件;文件可以是
      像任何其他源文件一样在项目的源代码管理中进行跟踪。
    • 一旦生成了新的迁移,就可以通过多种方式将其应用于数据库。 EF Core 将所有应用的迁移记录在一个 特殊的历史表,让它知道哪些迁移已经 申请了,哪些没有

    Question: If I would have 2 models before I did any migrations which model would get chosen?

    • 如前所述,由于它会跟踪以前的迁移历史记录,因此在您的 old model 中,它会比较差异并覆盖最新的 未写入旧文件的更改。这就是它的工作原理。

    希望以上解释能够相应地指导您并弥补您的困惑。你也可以看看official documents here

    【讨论】:

      猜你喜欢
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      相关资源
      最近更新 更多