gpt4 book ai didi

c# - Identity.EntityFramework OnModelCreating 是如何调用的

转载 作者:太空狗 更新时间:2023-10-29 22:25:33 25 4
gpt4 key购买 nike

我正在从事 2 个类似的项目 - 但我没有创建其中任何一个。

它们都有相同的局部上下文,如下:

using Microsoft.AspNet.Identity.EntityFramework;

public class LocalContext :
IdentityDbContext
<ApplicationUser, ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
//.....

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
AddConfigurations(modelBuilder);
}
}

在整个项目中搜索对 OnModelCreating 的引用返回上面提到的 2 个实例,加上在命名空间 Microsoft.AspNet.Identity.EntityFramework 中对此方法的引用

这些项目是使用 Onion 架构制作的,我正在使用 Swagger 运行 REST 层。

问题是在其中一个项目中,OnModelCreating在我启动应用程序时调用(这是我所期望的),而在另一个应用程序中它在用户第一次执行操作时调用。

谁能解释这是为什么?

我假设某处有一个设置触发了这个调用 - 但我找不到它 - 正如我上面所说的,我已经搜索了整个项目,但找不到任何地方正在调用这个方法。

据我所知,这两个项目的所有引用文献都是相同的 - 谁能帮忙?

最佳答案

它在您的数据库上下文初始化时被调用。

如果您在启动代码中使用数据库初始化程序,那么它会发生:

Database.SetInitializer(new CreateDatabaseIfNotExists<MyDbContext>());

否则它会在您第一次创建它的实例时发生:

using (var context = new MyDbContext()) {
...
}

关于c# - Identity.EntityFramework OnModelCreating 是如何调用的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41981656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com