我在Asp.net mvc应用程序中使用Automapper。 我有一个问题关于automapper我应该在哪里放置automapper代码?
从大量的示例代码的使用,我看到人们直接在行动使用映射Mapper.Map<Target>(source)
,我不知道这是否是好的prctice,在我的观点,我会喜欢包裹Mapper
码在代理对象,而不是让它在这个例子与controller
直接
public BankflowData CreateBankflowAdjustments(BankflowData addedBankFlow)
{
var bankflow = Mapper.Map<Bankflow>(addedBankFlow);
var newBankflow = Underlying.CreateBankFlowAdjustments(bankflow);
return Mapper.Map<BankflowData>(newBankflow);
}
说话,控制器一无所知Bankflow
类,都知道它是DTO BankflowData
。
我想知道这是否是使用AutoMapper的应用程序的良好实践?
这个例子看起来不错,所以你的想法是使用extend方法来封装'Mapper.Map'并且调用DTO.ToDomain(),是吗?你也同意映射代码应该放在服务层而不是控制层,对吗? – Sean
是的,但是如果你有服务层,最好的地方是将它们放在那里,因为将DTO或ViewModel映射到域实体的最佳位置是服务层。尽管如果您的应用程序不够大,您可以将它们放入您的控制器中,但请尝试使用扩展方法来使代码清洁。 – Ehsan