Как правильно конфигурировать 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}));

или достаточно конфигурирования в базовой сущности?


Ответы (0 шт):