Как использовать мои конфигурации в классе, который наследуется от IdentityDbContext? - PullRequest
0 голосов
/ 19 апреля 2019

Недавно я хотел реализовать аутентификацию в своем веб-приложении C # MVC и начал следовать руководству из Дизайн авторизации на основе утверждений для операции условного редактирования в приложении ASP.NET MVC . Однако я столкнулся с проблемой, когда дело дошло до моего класса DbContext.

Кажется, я не могу заставить его работать без нескольких ошибок. Если я разрешу один из них, другой сломается. Я попытался найти его, но никому не показалось, что он столкнулся с той же проблемой, что и я.

Я не понимаю, почему он ломается, так как классы, которые он наследует, все еще наследуют от DbContext, между ними всего 2 класса.

КОД С КЛАССАМИ, ОСУЩЕСТВЛЯЮЩИМИ DbContext, ЭТОТ КОД работает, НО ДОЛЖЕН ИЗМЕНЯТЬСЯ

using Microsoft.EntityFrameworkCore;
using ProjectKiwi.Data.Mappers;
using ProjectKiwi.Models.Domain;

namespace ProjectKiwi.Data
{
    public class ApplicationDbContext : DbContext
    {
        public DbSet<Nieuwsartikel> Artikels { get; set; }
        public DbSet<Bestuurslid> Bestuurleden { get; set; }
        public DbSet<Locatie> Locaties { get; set; }
        public DbSet<ContactPagina> ContactPaginas { get; set; }
        public DbSet<Spreker> Sprekers { get; set; }
        public DbSet<Seminarie> Seminaries { get; set; }
        public DbSet<Categorie> Categories { get; set; }
        public DbSet<Deelnemer> Deelnemers { get; set; }
        public DbSet<Inschrijving> Inschrijvingen { get; set; }
        public DbSet<Organisatie> Organisaties { get; set; }
        public DbSet<Forumpost> Forumposts { get; set; }

        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }

        protected override void OnModelCreating(ModelBuilder builder)
        { //I really need these configurations in my new app so I can choose how mapping is done.
            base.OnModelCreating(builder);
            builder.ApplyConfiguration(new ArtikelConfiguration());
            builder.ApplyConfiguration(new BestuurslidConfiguration());
            builder.ApplyConfiguration(new LocatieConfiguration());
            builder.ApplyConfiguration(new ContactPaginaConfiguration());
            builder.ApplyConfiguration(new CategorieConfiguration());
            builder.ApplyConfiguration(new DeelnemerConfiguration());
            builder.ApplyConfiguration(new InschrijvingConfiguration());
            builder.ApplyConfiguration(new OrganisatieConfiguration());
            builder.ApplyConfiguration(new SeminarieConfiguration());
        }
    }
}

КОД С ИСПОЛЬЗОВАНИЕМ КЛАССА IdentityDbContext, ЭТОТ КОД НЕ РАБОТАЕТ ВСЕ И ПРОСТО ПОКАЗЫВАЕТ, ЧТО Я ПРИШЕЛ С

Команда applyConfiguration не работает. У меня также больше нет конструкторов, и я не знаю, нужен ли мне еще.

using Microsoft.AspNet.Identity.EntityFramework;
using ProjectKiwi.Data.Mappers;
using ProjectKiwi.Models.Domain;
using System.Data.Entity;

namespace ProjectKiwi.Data
{
    public class ApplicationDbContext : IdentityDbContext
    {
        public DbSet<Nieuwsartikel> Artikels { get; set; }
        public DbSet<Bestuurslid> Bestuurleden { get; set; }
        public DbSet<Locatie> Locaties { get; set; }
        public DbSet<ContactPagina> ContactPaginas { get; set; }
        public DbSet<Spreker> Sprekers { get; set; }
        public DbSet<Seminarie> Seminaries { get; set; }
        public DbSet<Categorie> Categories { get; set; }
        public DbSet<Deelnemer> Deelnemers { get; set; }
        public DbSet<Inschrijving> Inschrijvingen { get; set; }
        public DbSet<Organisatie> Organisaties { get; set; }
        public DbSet<Forumpost> Forumposts { get; set; }

        protected override void OnModelCreating(DbModelBuilder builder)
        {
            base.OnModelCreating(builder);
            builder.ApplyConfiguration(new ArtikelConfiguration());
            builder.ApplyConfiguration(new BestuurslidConfiguration());
            builder.ApplyConfiguration(new LocatieConfiguration());
            builder.ApplyConfiguration(new ContactPaginaConfiguration());
            builder.ApplyConfiguration(new CategorieConfiguration());
            builder.ApplyConfiguration(new DeelnemerConfiguration());
            builder.ApplyConfiguration(new InschrijvingConfiguration());
            builder.ApplyConfiguration(new OrganisatieConfiguration());
            builder.ApplyConfiguration(new SeminarieConfiguration());
        }
    }
}

Я хочу иметь возможность отображать свои классы, используя мои конфигурации, и использовать этот класс в качестве моего DbContext. Мне нужны DbSets для хранения всех моих данных.

...