2015-06-25 4 views
2

Я хотел бы иметь только один DbContext в моем проекте ASP.NET MVC. Как мне объединить стандартный IdentityDbContext по умолчанию с моим собственным кодом DbContext? Они используют одну и ту же базу данных.Объединить IdentityDbContext и DbContext ASP.NET MVC

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
    { 
     public ApplicationDbContext() 
      : base("SignalRChat") 
     { 
     } 
    } 

Это значение по умолчанию предусмотрено в классе IdentityModel.cs.

Можно ли сделать следующее? И добавить свои собственные DbSets?

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("SignalRChat") 
    { 
    } 

    public DbSet<Student> Students { get; set; } 
    public DbSet<Standard> Standards { get; set; } 
} 

Любые советы очень ценятся!

+0

То, что я делаю в своих проектах. Затем я размещаю этот и пользовательский менеджер, менеджер ролей и т. Д. Внутри репозитория. Я csn, затем блок test my bll, такой как служба, а затем интегрируйте тест в мой репозиторий отдельно, а также через службу. – Kyle

ответ

0

Да, это прекрасно, если вы добавляете объявления DbSet в классы DbContext. Обычно вы могли бы создать контекст для связанной группы таблиц, что имеет смысл при доступе к нему из ваших репозиториев, например. ApplicationDbContext для регистрации пользователей, входа в систему и т. Д. Другой для учащихся и связанных с ними организаций.

Если у вас много контекстов, возможно, вы должны проверить ограниченный контекст «шаблон» https://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/DEV-B336#fbid=wH4n-081m_U.