Как правильно конфигурировать dbContext при использовании TPH
Есть схема данных с одной основной сущностью и несколькими дочерними. Эта схема реализована чере TPH. При этом в контексте, в перегрузе метода onModelCreating задано правило для базовой сущности с настройкой дискриминатора и параметрами для индексирования.
Для примера, базовый класс UserProperty
abstract class UserProperty
{
public Guid Id {get;set;}
public Guid UserId {get;set;}
public PropertyTypeEnum Type {get;set;}
}
Конфигурация контекста
modelBuilder.Entity<UserProperty> (options => {
options.HasKey (i => i.Id).ForSqlServerIsClustered (false);
options.HasIndex (i => new { i.Id, i.UserId }).IsUnique ();
options.HasDiscriminator<int> ("Type")
.HasValue<UserPropertyB> ((int) PropertyTypeEnum.A)
.HasValue<UserPropertyA> ((int) PropertyTypeEnum.B)
});
где HasIndex задает правило, что у пользователя может быть только по одному экземпляру свойств конректного типа.
Нужно ли для UserPropertyA,UserPropertyB конфигурировать контектс? Т.е описывать далее
modelBuilder.Entity<UserPropertyA>(prop=> prop.HasIndex(i=> new {i.Id, i.UserId}));
или достаточно конфигурирования в базовой сущности?