EFCore OnModelCreating什么时候被调用?

时间:2018-10-10 11:16:11

标签: entity-framework asp.net-core ef-code-first ef-core-2.1

我知道在您创建迁移时会调用它,但这是 ONLY 调用的唯一时间吗?

似乎不像在请求进入时(在WebApi系统的上下文中)被调用,但是在服务器启动时会被调用吗?还是在部署过程中的任何时候?还是在迁移期间运行

寻求数据播种的目的,尽管我也想知道摘要中的答案。

2 个答案:

答案 0 :(得分:1)

第一次创建

OnModelCreating时,框架会调用它来制作模型并映射到内存中。它为您提供了一种使用Fluent API来配置模型类的方法。因此,您可以在模型类中进行更改,然后添加迁移并更新数据库。生成的快照为您提供了有关数据库的确切详细信息。在程序执行期间不会调用它。

答案 1 :(得分:0)

至少,在应用迁移时也会调用该方法,该方法通常配置为在WebHost启动时自动完成。 猜测是因为EF在执行迁移之前尝试验证数据库状态。这种验证似乎需要一个模型进行比较,因此可以运行该方法。

它可能还会在其他情况下运行。