我有一个 base MappedViewModel
,也就是说,它是为与域和其他模型的“自动”映射而构建的:
public abstract class MappedViewModel<TEntity> : ViewModel
{
public virtual void MapFromEntity(TEntity entity, bool forCreate = false)
{
Mapper.Map(entity, this, typeof(TEntity), GetType());
if (ModelPurpose == ViewModelPurpose.Create)
{
NullifyReferenceProperties();
}
}
public virtual TEntity MapToEntity()
{
return Mapper.Map<TEntity>(this);
}
protected virtual void NullifyReferenceProperties()
{
}
}
我不知何故觉得它NullifyReferenceProperties
应该在基类中是抽象的,以强制需要它的类来实现它,但许多类不需要它,而且当模型不是为创建新实体而构建时,许多类需要它。是否可以像现在一样virtual
,或者有什么方法可以确定如何强制使用它?
也许是MappedViewModel
一个派生的基地MappedViewModelForCreate
?