OnModelCreating 和非自动迁移有何关系?

2024-01-09

当我添加一个与我的数据库有某种关系的新表然后运行Add-Migration我看到代码是在Up添加表及其关系的方法。 然而,我更喜欢使用 Fluent API 来定义关系OnModelCreating方法。这两种方法如何相互作用?我可以删除其中的代码吗Up例如定义关系的方法?


他们每个人都有完全不同的目的:

  • OnModelCreating用于模型的内联 Fluent-API 定义。这些定义与默认约定、数据注释和配置类一起构成了模型的完整定义。
  • 显式迁移定义必须对数据库执行哪些操作才能将其迁移到当前模型所需的形式

现在,这两者有何关系?迁移有两个输入,用于生成迁移代码(Up and Down方法)。一个输入是存储在的最后一个迁移记录__MigrationHistory数据库中的表。该记录包含代表数据库的序列化模型。此输入是可选的,因为第一次迁移必须在没有它的情况下进行。第二个输入是强制性的 - 它是通过执行当前程序集中的代码来检索的当前模型=>Add-Migration将执行你的OnModelCreating获取当前模型并将其与从数据库检索的模型进行比较。比较结果为内容Up and Down显式迁移中的方法。

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

OnModelCreating 和非自动迁移有何关系? 的相关文章

随机推荐