У меня есть это в моем 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) =>
{
});
Где TotalLoanAdvanced()
и TotalinterestRepaymentToLoanEndDate()
- методы расширения для Loan
.
Однако, чтобы вычислить тот общий процентмой метод продления, конечно же, вызывает TotalLoanAdvanced()
для умножения на процентную ставку, что означает, что я рассчитываю TotalLoanAdvanced
дважды для каждого сопоставляемого кредита.
Как мне избежать этого?
Я думал, что это может быть выполнимо с чем-то вроде BeforeMap
или AfterMap
, но когда я пытаюсь
.AfterMap((dto, loan) =>
{
dto.TotalLoanAdvanced = 5000000;
});
, я вижу, что dto
отображается как имеющий TotalLoanAdvanced
0.То же самое происходит, когда вы делаете это с BeforeMap
:
.BeforeMap((loan, dto) =>
{
dto.TotalLoanAdvanced = 5000000;
});
Как мне это сделать?