У меня есть следующий базовый класс.
public abstract class BaseEntity
{
public virtual long Id { get; set; }
public virtual DateTime CreateDate { get; set; }
public virtual DateTime? UpdateDate { get; set; }
public virtual bool IsDeleted { get; set; }
public virtual string CreatedBy { get; set; }
}
И это базовый класс для всех сущностей.
Например,
public class Task : BaseEntity
{
public virtual string Name {get;set;}
}
У меня есть инициализатор,
public class Initializer
{
public static AutoPersistenceModel MapEntities()
{
var p = AutoMap
.AssemblyOf<User>(new MyDefaultAutomappingConfiguration())
.IgnoreBase<BaseEntity>()
.UseOverridesFromAssemblyOf<Initializer>()
.Override<BaseEntity>(map =>
{
map.Map(b => b.CreateDate).Not.Nullable().Not.Update();
map.Map(b => b.CreatedBy).Not.Nullable().Length(100);
map.Map(b => b.ModifiedBy).Length(100);
map.Map(b => b.DeletedBy).Length(100);
map.Map(b => b.IsDeleted).Not.Nullable().Default("0");
});
return p;
}
}
И, конечно же, в базе данных - CreateDate - это datetime, null, а CreatedBy - это nvarchar (255).
Как я могу настроить этот AutoMapper для получения этих сопоставлений из базового класса во все дочерние классы?