Недавно я хотел реализовать аутентификацию в своем веб-приложении 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 для хранения всех моих данных.