したがって、エラーは次のとおりです。式は、子オブジェクトのプロパティではなく、最上位のメンバーに解決する必要があります。
DTO の報酬は Enum です。ContractEntity は、ComplexType である Remuneration を使用します。
エラーをスローするコード:
Mapper.CreateMap<ContractDTO, ContractEntity>()
.ForMember(d => d.Remuneration.ContractType, s => s.MapFrom(z => z.ContractType))
.ForMember(d => d.Remuneration.Currency, s => s.MapFrom(z => z.Currency))
.ForMember(d => d.Remuneration.RateUnit, s => s.MapFrom(z => z.RateUnit));
Entity Framework 複合型:
[ComplexType]
public class Remuneration
{
public decimal Amount { get; set; }
public int Currency { get; set; }
public int RateUnit { get; set; }
public int ContractType { get; set; }
}
宛先 (ContractEntity) で整数値を使用する必要があるため、次のようにソース列挙型を宛先整数にキャストできると考えました。
.ForMember(d => d.Remuneration.ContractType, s => s.MapFrom(z => (int)z.ContractType))
..明らかに私はできません.誰かがこれがうまくいかない理由を明確にしてくれることを望んでいました..