6
Kullanıcıları, rolleri ve uygulamaya özgü varlıkları nasıl ekiyorsunuz? IdentityModel kendi Bağlamını hedefliyormuş gibi görünüyor mu?Tohum Varlıklar ve Kullanıcılar, Roller?
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" }
// );
//
}
}
vs
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");
}
}
iyi görünüyor, teşekkürler! Kullanıcılar/roller vb. için varsayılan db'yi ve varlıkların her ikisi de tek bir initilizer ile çekirdek oluşturmaları için yeni bir dbcontext'i hedeflemenin bir yolu var mı? EF, hesap yönetimi/Kimlik için kendi DbContext'ini oluşturuyormuş gibi görünürken, biz geliştiriciler olarak, varlıklar/modeller üzerinde kaba operasyonlar için farklı bir DbContext'i hedefliyoruz. Bunu doğru anlıyor muyum? – JReam
Kimliklerimizi, hem kimlik hem de iş sınıfları için yalnızca 1 başlatıcımız, geçişimiz, vb. Için IdentityDbContext'ten türetmek üzere ayarladık. Daha büyük bir mimari için, veri maddelerini farklı bir proje veya depoya ayırma yeteneğinizi sınırlayabilir, ancak bizim için iyi çalışır. Julie Lerman'ın konuyla ilgili birkaç iyi makalesi var. https://msdn.microsoft.com/en-us/magazine/jj883952.aspx –
Teşekkürler, Steve. Yani yukarıdaki örnekte; if() db.Users.Any()) {} öğesinden sonra, iş sınıfları için yeni nesneler oluşturmaya başlayacaksınız. – JReam