ASP.NET MVC ApplicationDbContext Создать - PullRequest
0 голосов
/ 23 января 2019

Может кто-нибудь объяснить, для чего используется метод создания?

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

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

1 Ответ

0 голосов
/ 23 января 2019

Если вы увидите ссылки на этот статический метод Create, вы обнаружите, что этот метод использовался в методе ConfigureAuth частичного класса Startup в файле Startup.Auth.cs в папке App_start следующим образом:

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, чтобы вы могли использовать их во всем приложении.

Вот подробности с примером.

...