如何OnModelCreating和非自动迁移有关?(How do OnModelCreating

2019-07-30 02:58发布

当我补充一点,有一些关系到我的数据库中的新表,然后运行Add-Migration我看到代码在产生Up的方法添加表和它的关系。 不过,我更喜欢用流利的API中的定义关系OnModelCreating方法。 如何将这两种方法进行交互? 我可以删除代码Up方法定义为实例的关系?

Answer 1:

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

  • OnModelCreating用于模型的在线流畅的API定义。 这些默认约定,数据注释和配置类一起定义构成了模型的完整定义。
  • 明确定义的迁移必须做什么,以数据库将其迁移到您的当前模型所要求的形式

现在,如何这两个关联? 迁移具有用来生成迁移代码(两个输入UpDown的方法)。 一个输入是存储在最后迁移记录__MigrationHistory数据库中的表。 此记录包含代表数据库序列模型。 该输入是可选的,因为第一次迁移必须在没有它的工作。 第二个输入是必需的-它是由在当前的程序集中执行代码检索当前模型=> Add-Migration将执行你的OnModelCreating获得当前的模型,并将其与从数据库中检索模型进行比较。 比较的结果是内容UpDown的明确迁移方法。



文章来源: How do OnModelCreating and non automatic Migrations relate?