EF CORE Конфигурация Fluent Api в отдельных файлах работает нормально с простыми классами Ref # 1 && Ref # 2 .Проблема возникает, когда сущности наследуются от KeyedEntity
или AuditableEntity
class abstract KeyedEntity<TValue> {
public TValue Id {get; set;}
}
class abstract AuditableEntity<TValue> : KeyedEntityBase<TValue>{
public DateTime DateCreated {get; set;}
public DateTime DateModified {get; set;}
}
Mapper Goes Что-то вроде этого
public class KeyedEntityMap<TEntity, TId>
: IEntityTypeConfiguration<TEntity> where TEntity
: KeyedEntityBase<TId> where TId : struct
{
public void Configure(EntityTypeBuilder<TEntity> builder)
{
// Primary Key
builder.HasKey(t => t.Id);
// Properties
builder.Property(t => t.Id).HasColumnName("id").ValueGeneratedOnAdd();
}
}
public class AuditableEntityMap<TEntity, TId>
: IEntityTypeConfiguration<TEntity> where TEntity
: AuditableEntity<TId> where TId : struct
{
public void Configure(EntityTypeBuilder<TEntity> builder)
{
// Properties
builder.Property(t => t.DateCreated).HasColumnName("DateCreated");
builder.Property(t => t.DateModified).HasColumnName("DateModified");
}
}
Теперь проблема возникает с сущностью, которая наследуется от AuditableEntity
.Мне нужно зарегистрировать Map из этого класса Specific Enitity вместе с классом AuditableEntityMap
и классом KeyedEntityMap
.
Теперь я могу забыть о наследовании карты и объединить все карты сложного наследования в классе сущностей, что я не хочу делать и соблюдаю DRY . Проблема со сложным наследованием в том, что он не регистрирует мои карты сущностей