我有这个LoanProfile:
CreateMap<Loan, LoanDto>()
.ForMember(
dto => dto.TotalLoanAdvanced,
loan => loan.MapFrom(l => l.TotalLoanAdvanced()))
.ForMember(
dto => dto.TotalInterestToLoanEndDate,
loan => loan.MapFrom(l => l.InterestRepaymentAtLoanEndDate()))
.ReverseMap()
.AfterMap((dto, loan) =>
{
});
Run Code Online (Sandbox Code Playgroud)
在哪里TotalLoanAdvanced()和TotalinterestRepaymentToLoanEndDate()是扩展方法Loan.
但是,为了计算总利息,我的扩展方法当然要求TotalLoanAdvanced()乘以利率,这意味着我计算TotalLoanAdvanced的每笔贷款都要计算两次.
我怎么能避免这个?
我想这可能是可行的东西,如BeforeMap或AfterMap,但是当我尝试
.AfterMap((dto, loan) =>
{
dto.TotalLoanAdvanced = 5000000;
});
Run Code Online (Sandbox Code Playgroud)
我可以看到它dto被映射为具有TotalLoanAdvanced0的相同的事情BeforeMap.
.BeforeMap((loan, dto) =>
{
dto.TotalLoanAdvanced = 5000000;
});
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我对如何修复AutoMapper配置没有答案.但是,您的问题是如何避免这种情况?和我应该怎样做这个,所以我想一些建议回答:不要把业务逻辑在你的映射配置.
不这样做的原因是:
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |