1

エンティティ モデルから Dto へのマッピングを作成しようとしていますが、マッピングの作成に毎回失敗しています。

2 つのドメイン クラスがあります。これは私たちのモデルを簡略化したものです (Deviceたとえば、さまざまなものを表すより多くのプロパティがあります)。

class Device
{
    public int Name {get; set;}
}

class DeviceAccessToken
{
    public Device Device {get; set;}
    public string Key {get; set;}
    public string Secret {get; set;}
}

DeviceAccessToken次に、インスタンスをこれにマップします (これも簡略化されています。元のモデルDeviceDtoに存在するほとんどのフィールドがあります)。Device

class DeviceDto
{
    public int Name {get; set;}
    public string Key {get; set;}
    public string Secret {get; set;}
}

Deviceマッピングでドメイン モデルのすべてのフィールドを明示的に指定せずに、このマッピングを作成する方法はありますか?

これは事実上、AutoMapper プロファイルによって表される、私が望むものです。

class DeviceMappingProfile : Profile
{
    protected override void Configure()
    {
        this.CreateMap<DeviceAccessToken, DeviceDto>();

        this.CreateMap<Device, DeviceDto>()
            .ForMember(dest => dest.Key, opt => opt.Ignore())
            .ForMember(dest => dest.Secret, opt => opt.Ignore());
    }
}

この.ForAllMembers呼び出しは、これを機能させる試みの失敗でした。私が思い描いたように機能するはずがありません。

Deviceマッピングでのすべてのプロパティを指定することでこれを行うことができることは理解していDeviceAccessToken->DeviceDtoますが、名前が同じであるため、悪夢であり、非常に冗長です。

4

1 に答える 1