Можно ли указать asp identity использовать тот же dbcontext, что и приложение dbcontext? Мои таблицы должны относиться к таблице идентичности. В каждой таблице есть поле createuser и edituser, которое связано с таблицей идентификации. Если asp использует свой собственный dbcontext, тогда я должен также добавлять сущности и сопоставление с таблицами идентификации в приложение dbcontext. Является ли лучший подход к этой ситуации? Я использую сущность framework code first 6 и asp mvc 5.
РЕДАКТИРОВАТЬ
Основываясь на ответах ниже, я могу использовать один и тот же dbcontext, пока мой dbcontext унаследован от IdentityContext.
Мой вопрос:
Нужно ли мне все-таки создавать класс сущности и карту? Как сопоставить отношения между моими таблицами с идентификатором?
Это мой текущий dbcontext
public partial class MyContext : DbContext
{
static MyContext()
{
Database.SetInitializer<MyContext>(null);
}
public MyContext()
: base("Name=MyContext")
{
this.Configuration.ProxyCreationEnabled = false;
this.Configuration.LazyLoadingEnabled = false;
}
public new DbSet<TEntity> Set<TEntity>() where TEntity : BaseEntity
{
return base.Set<TEntity>();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new AspNetRoleMap());
modelBuilder.Configurations.Add(new AspNetUserClaimMap());
modelBuilder.Configurations.Add(new AspNetUserLoginMap());
modelBuilder.Configurations.Add(new AspNetUserMap());
modelBuilder.Configurations.Add(new PersonMap());
}
Ваш класс контекста должен быть унаследован от IdentityDbContext
вместо DbContext. IdentityDbContext
содержит некоторую конфигурацию для IdentityUser, IdentityRole, IdentityUserLogin, IdentityUserRole, IdentityUserClaim
и имеет IDbSet Users
и IDbSet Roles
.
public class MyContext : IdentityDbContext<IdentityUser or your own UserEntity>
{
.
.
.
}
В EF 6.0 лучше всего будет иметь два отдельных контекста, а затем использовать одну и ту же строку соединения и две разные конфигурации миграции в соответствии с несколькими контекстами БД в одной и той же БД и приложении в EF 6 и First First Migrations.
Мой вопрос:
Нужно ли мне все-таки создавать класс сущности и карту? Как сопоставить отношения между моими таблицами с идентификатором?
Нет, все ваши классы Identity уже сопоставлены. Если вы хотите добавить отношение к своей Identity, вы можете сделать это, как обычно, в методе OnModelCreating в самом контексте, относящемся к вашим классам Identity (например, IdentityRole, IdentityUserRole, IdentityUser).
Для получения дополнительной информации о том, как это сделать, взгляните на эту статью.
Конечно
Когда вы создаете экземпляр вашего User Manager, просто переходите через User Store вместе со своим собственным dbContext.
new UserManager<IdentityUser>(new UserStore<IdentityUser>(new MyDbContext()))