我有兴趣了解开发人员使用不同的方式将其视图从领域模型中抽象出来。将域模型类型转换为ViewModels
目前我为每个模型创建一个ViewModel,我想在视图中使用,并且我有一个转换器IConverter<TIn,TOut>
来这样做。
我注意到的是,对于包含其他类型集合的类型,我有一个ViewModel用于每个类型的heirarchy和转换器,它们使用其他转换器来构建最终的ViewModel。
举个例子:
假设我有它内建了FluentNHibernate这个领域模型结构:
public class User
{
[...]
public virtual IEnumerable<QuestionSubscription> QuestionSubscriptions{get;set;}
}
public class QuestionSubscription
{
public virtual bool VerifiedSubscription{get;set;}
public virtual Question Question{get;set;}
}
鉴于我正在这种方式然后我将有3周的ViewModels支持这一因为我用我的自定义转换将有来自用户转化率的环比回落质疑: (缩短一些名字为简洁起见)
_userToUserViewModelConverter.Convert(userModel)
|
V
_qSubscriptionToViewModelConverter.Convert(userModel.QSubscriptions)
|
V
_questionToViewModelConverter.Convert(QSubscription.Question)
这很好,我只是想知道其他的管理方式。
我的第一个问题是,你认为我采取正确的做法,不让我的领域模型触及我的观点?
其次,假设问题1为“是”,您是否会使用使转换器执行其他转换器的相同方法,或者您是否每次都在控制器中执行每个转换器?
这可能是一个更适合于Programmers.StackExchange的问题:http://programmers.stackexchange.com – CAbbott
看看automapper。这是最快和推荐的方式。 –