【问题标题】:ASP.NET MVC ApplicationDbContext CreateASP.NET MVC ApplicationDbContext 创建
【发布时间】:2019-01-23 05:06:37
【问题描述】:

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

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

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

【问题讨论】:

  • 用于创建自己的DB Context使用。请参考这个 SO 问题的答案 --> Link

标签: c# database asp.net-identity


【解决方案1】:

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

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.

【讨论】:

  • 感谢您的回答。我得到它创建一个新的 dbcontext 实例将存储在 OwinContext 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 2023-03-17
  • 1970-01-01
  • 2020-11-09
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多