ممنون از هر دو دوست عزیز جهت پاسخشان
من از دو context داریم استفاده میکنم یکی در datalayer و دیگری در UI در لایه دیتا برای برای کار با کل کلاس ها است و datacontext ای که من در لایه UI استفاده کردم
با Identity سروکار داره. همونطور که میبینید من از identitydbcontext در هر دو context دارم استفاده میکنم.
context مربوط به لایه دیتا
public class DentistryContext : IdentityDbContext
{
public DentistryContext():base("DentistryDB")
{
}
public DentistryContext(string DentistryDB) : base("DentistryDB")
{
}
public DbSet<Menu> Menu { get; set; }
public DbSet<Page> Page { get; set; }
public DbSet<PageGroup> PageGroup { get; set; }
public DbSet<PageTagMap> PageTagMap { get; set; }
public DbSet<Tag> Tag { get; set; }
public DbSet<Author> Author { get; set; }
public DbSet<User> User { get; set; }
public DbSet<Schedule> Schedule { get; set; }
public DbSet<Role> Role { get; set; }
public DbSet<Office> Office { get; set; }
public DbSet<Appoinment> Appoinment { get; set; }
public DbSet<Secretary> Secretary { get; set; }
public DbSet<Gallery> Gallery { get; set; }
public DbSet<GalleryItem> GalleryItem { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<DentistryContext>(null);
base.OnModelCreating(modelBuilder);
}
}
context مربوط به لایه UI
public class AppIdentityDbContext : IdentityDbContext<User>
{
public AppIdentityDbContext() : base("DentistryDB")
{
}
public static AppIdentityDbContext Create()
{
return new AppIdentityDbContext();
}
static AppIdentityDbContext()
{
Database.SetInitializer<AppIdentityDbContext>(new IdentityDbInit());
}
}
public class IdentityDbInit : DropCreateDatabaseIfModelChanges<AppIdentityDbCont ext>
{
protected override void Seed(AppIdentityDbContext context)
{
PerformInitialSetup(context);
base.Seed(context);
}
public void PerformInitialSetup(AppIdentityDbContext context)
{
AppUserManager userMgr=new AppUserManager(new UserStore<User>(context));
AppRoleManager roleMgr=new AppRoleManager(new RoleStore<Role>(context));
string roleName="xxxx";
string userName="cccc";
string password="aaaa";
string email="admin@example.com";
if (!roleMgr.RoleExists(roleName))
{
roleMgr.Create(new Role(roleName));
}
User user=userMgr.FindByName(userName);
if (user == null)
{
userMgr.Create(new User { UserName = userName, Email = email }, password);
user = userMgr.FindByName(userName);
}
if (!userMgr.IsInRole(user.Id, roleName))
{
userMgr.AddToRole(user.Id, roleName);
}
}
}