Я использую EntityFramework 6. Я хотел бы разделить мой DbContext на несколько меньших. Изменить: У меня есть одна база данных, к которой я хочу подключиться.
У меня будет один DbContext со всеми сущностями и миграциями, которые будет использовать только одно центральное приложение. Другие приложения будут использовать меньший DbContext без миграций.
Я обнаружил, что мне нужно наследовать весь DbContext от IdentityDbContext, даже если они не используют ничего из этого.
internal class SmallerDbContext : IdentityDbContext<ApplicationUser,
ApplicationRole, int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public DbContext<Entity1> NotInSmallerDbContext { get; set; }
public DbContext<Entity1> InSmallerDbContext { get; set; }
}
Я бы хотел, чтобы это было:
internal class SmallerDbContext : System.Data.Entity.DbContext
{
public DbContext<Entity1> InSmallerDbContext { get; set; }
}
Но это приводит к следующим ошибкам:
Paris.DAL.Repo.DbContext.ApplicationUserLogin: : EntityType 'ApplicationUserLogin' has no key defined. Define the key for this EntityType.
Paris.DAL.Repo.DbContext.ApplicationUserRole: : EntityType 'ApplicationUserRole' has no key defined. Define the key for this EntityType.
ApplicationUserLogins: EntityType: EntitySet 'ApplicationUserLogins' is based on type 'ApplicationUserLogin' that has no keys defined.
ApplicationUserRoles: EntityType: EntitySet 'ApplicationUserRoles' is based on type 'ApplicationUserRole' that has no keys defined.
Я пытался добавить эти таблицы в DbContext, но безрезультатно.
public IDbSet<ApplicationUser> Users { get; set; }
public IDbSet<ApplicationRole> Roles { get; set; }
Можно ли как-нибудь создать DbContext, который не наследуется от IdentityDbContext?