私はベースを持っています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
?