Множественное наследование с помощью Entity Framework TPC

Я попытался отобразить некоторые классы, используя Entity Framework в стиле TPC, и получил следующую ошибку:

Ошибка: тип «А» не может быть отображено как определено, потому что это отображает унаследованные свойства от типов, которые используют разделение сущности или другую форму наследования. Либо выберите другую стратегию отображения наследования, чтобы не отображать унаследованные свойства, либо измените все типы в иерархии, чтобы отобразить унаследованные свойства и не использовать разбиение.

Эта ошибка возникает, когда я использую следующие классы:

public abstract class BaseEntityTest
public abstract class BaseEntityTest2 : BaseEntityTest
public abstract class BaseEntityTest3 : BaseEntityTest2
public class A: BaseEntityTest3 // this class is the only one with a table in the db

В методе OnModelCreating я добавил следующий код, чтобы получить отображение TPC

modelBuilder.Entity<a>().Map(m =>
{
  m.MapInheritedProperties();
  m.ToTable("A");
});
</a>

Когда я исключаю BaseEntityTest2 из структуры (чтобы A наследовал только от BaseEntityTest вместо BaseEntityTest2), ошибка исчезает. Означает ли это, что невозможно создать это отображение, или я просто что-то пропустил?

РЕДАКТИРОВАТЬ:

Свойства классов:

public abstract class BaseEntityTest
{

    [Key]
    public Guid Id { get; set; }

    public String Info { get; set; }

    [Required]
    public DateTime CreationDate { get; set; }

    [Required]
    public String CreationUser { get; set; }

    [Required]
    public DateTime ModificationDate { get; set; }

    [Required]
    public String ModificationUser { get; set; }

    [ConcurrencyCheck]
    [Required]
    public int LockVersion { get; internal set; }
}

public abstract class BaseEntityTest2 : BaseEntityTest
{
    [Required]
    public string Name { get; set; }

    public string Description { get; set; }

}

public abstract class BaseEntityTest3: BaseEntityTest2 
{

    [Required]
    public DateTime FromDate { get; set; }

    public DateTime ThruDate { get; set; }
}

public class A: BaseEntityTest3{
    public String Test { get; set; }
}

Ответы на вопрос(2)

Ваш ответ на вопрос