ApplicationDbContext не существует в текущем контексте? - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть эта ошибка в моем классе запуска, при создании приложения MVC. Что это значит? Я имею в виду, у меня есть web.config с connectionString с моим localDb прилагается. Какая может быть возможность решить такую ​​проблему? У меня тоже есть правильные сборки для этого. Пожалуйста, помогите товарищам спасибо.

public partial class Startup
    {
        public void ConfigureAuth(IAppBuilder app)
        {
            // configure the db context, user manager and signin manager to a single instance per request.

            app.CreatePerOwinContext(ApplicationDbContext); // this does not exist in current context.
            app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
            app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
            app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);

            // Configure sign cookie.
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/login"),
                Provider = new CookieAuthenticationProvider
                {
                    // Enables the application to validate the security stamp when the user logs in.
                    // This is a security feature which is used when you change a password or add an external login to your account.  
                    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                      validateInterval: TimeSpan.FromMinutes(30),
                      regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                }
            });
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Enables app to temperorily store user information when they are verified.
            app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));

            // To remember when to login in.
            app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
        }
    }

<!--- Connection string to the local database configuration here -->

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source = (LocalDb)\MSSQLocalDB;AttachDbFilename=|DataDirectory|TrainingAcademyDB.mdf; Initial Catalog=TrainingAcademyDB;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

1 Ответ

0 голосов
/ 24 февраля 2020

Попробуйте:

app.CreatePerOwinContext(ApplicationDbContext.Create);

Вместо:

app.CreatePerOwinContext(ApplicationDbContext);

Если это не помогло.

Обычно проблема возникает, когда вы этого не делаете есть правильные ссылки.

У вас есть класс с именем ApplicationDbContext? Есть ли у него метод stati c Create?

Если возможно, пожалуйста, покажите свой ApplicationDbContext.

Модель по умолчанию выглядит следующим образом:

public class ApplicationUser : IdentityUser
    {
        public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
        {
            // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
            var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
            // Add custom user claims here
            return userIdentity;
        }
    }

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

        public static ApplicationDbContext Create()
        {
            return new ApplicationDbContext();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...