当我补充一点,有一些关系到我的数据库中的新表,然后运行Add-Migration
我看到代码在产生Up
的方法添加表和它的关系。 不过,我更喜欢用流利的API中的定义关系OnModelCreating
方法。 如何将这两种方法进行交互? 我可以删除代码Up
方法定义为实例的关系?
Answer 1:
他们每个人都有完全不同的用途:
-
OnModelCreating
用于模型的在线流畅的API定义。 这些默认约定,数据注释和配置类一起定义构成了模型的完整定义。 - 明确定义的迁移必须做什么,以数据库将其迁移到您的当前模型所要求的形式
现在,如何这两个关联? 迁移具有用来生成迁移代码(两个输入Up
和Down
的方法)。 一个输入是存储在最后迁移记录__MigrationHistory
数据库中的表。 此记录包含代表数据库序列模型。 该输入是可选的,因为第一次迁移必须在没有它的工作。 第二个输入是必需的-它是由在当前的程序集中执行代码检索当前模型=> Add-Migration
将执行你的OnModelCreating
获得当前的模型,并将其与从数据库中检索模型进行比较。 比较的结果是内容Up
和Down
的明确迁移方法。
文章来源: How do OnModelCreating and non automatic Migrations relate?