6
Как вы используете пользователей, роли и конкретные объекты? Кажется, что IdentityModel нацелен на собственный Контекст?Семенные объекты И пользователи, роли?
internal sealed class Configuration : DbMigrationsConfiguration<Project.Models.SchoolContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
protected override void Seed(Project.Models.SchoolContext context)
{
// Seed the Entities
// context.People.AddOrUpdate(
// p => p.FullName,
// new Person { FullName = "Andrew Peters" }
// );
//
}
}
против
protected override void Seed(Project.Models.ApplicationDbContext context)
{
if (!context.Roles.Any(r => r.Name == "AppAdmin"))
{
var store = new RoleStore<IdentityRole>(context);
var manager = new RoleManager<IdentityRole>(store);
var role = new IdentityRole { Name = "AppAdmin" };
manager.Create(role);
}
if (!context.Users.Any(u => u.UserName == "founder"))
{
var store = new UserStore<ApplicationUser>(context);
var manager = new UserManager<ApplicationUser>(store);
var user = new ApplicationUser {UserName = "founder"};
manager.Create(user, "ChangeItAsap!");
manager.AddToRole(user.Id, "AppAdmin");
}
}
выглядит хорошо, спасибо! есть ли способ нацеливаться как на db по умолчанию для пользователей/ролей и т. д., так и на новый dbcontext для сущностей для семени с одним инициатором? Кажется, что EF создает собственный DbContext для управления учетными записями/Identity, тогда как мы, как разработчики, нацелены на другой DbContext для операций crud на сущностях/моделях? Я правильно понимаю это? – JReam
Мы устанавливаем наш вывод из IdentityDbContext, поэтому у нас есть только 1 инициализатор, миграция и т. Д. Для идентификационных и бизнес-классов. Для большей архитектуры это может ограничить вашу способность отделять данные в другом проекте или хранилище, но для нас это хорошо работает. У Джули Лерман есть несколько хороших статей по этой теме. https://msdn.microsoft.com/en-us/magazine/jj883952.aspx –
Спасибо, Стив. Итак, в приведенном выше примере; после вашего if (! db.Users.Any()) {}, вы начнете создавать новые объекты для бизнес-классов? – JReam