c# - ASP.NET MVC ApplicationDbContext 创建

标签 c# database asp.net-identity

有人可以解释一下create方法的用途吗?

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
  public ApplicationDbContext()
    : base("DefaultConnection", throwIfV1Schema: false)
  {
  }

  public static ApplicationDbContext Create()
  {
    return new ApplicationDbContext();
  }
}

最佳答案

如果你看到这个Create静态方法的引用,你会发现这个方法已经在Startup部分的ConfigureAuth方法中使用了App_start 文件夹下的 Startup.Auth.cs 文件中的类如下:

public partial class Startup
{

    public void ConfigureAuth(IAppBuilder app)
    {
        // Configure the db context, user manager and signin manager to use a single instance per request
        app.CreatePerOwinContext(ApplicationDbContext.Create);

        app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
        app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);

        // Removed other codes for brevity
    }
}

这里CreatePerOwinContext注册一个静态回调,您的应用程序将使用它来获取指定类型的新实例。 每个请求都会调用此回调一次,并将一个或多个对象存储在 OwinContext 中,以便您能够在整个应用程序中使用它们。

Here is more details with example.

关于c# - ASP.NET MVC ApplicationDbContext 创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54320342/

相关文章:

javascript - 具有 8 个不同值集的对象

database - 这样的数据库有多大?

c# - 如何在 ASP.NET Core 身份验证中将 OAuth 回调配置到不同的域

asp.net-identity - VerifyHashedPassword 结果何时为 SuccessRehashNeeded

c# - Windows 服务未从 App.config 获取值

c# - 具有隐藏/折叠元素的默认 WPF HitTest 行为

c# - 我正在尝试为白天/夜晚的配色方案设计一个解决方案,但卡住了

c# - 将对象序列化为不带\r\n 特殊字符的 xml 和字符串

mysql - 在M :N database relationship it's better to reference by a composite PK or two foreign keys

asp.net-mvc - 如何在空的 MVC 项目中实现 ASP.NET Identity