Automapper、単一の宛先プロパティを複数のソースプロパティの連結としてマッピング

Kラジェッシュクマール

いくつかの条件に基づいて、単一のプロパティを複数のソースプロパティの組み合わせとしてマップする必要がある状況があります。

目的地:

public class Email
{
    public Email() {
        EmailRecipient = new List<EmailRecipient>();
    }
    public string Subject{get; set;}
    public string Body {get; set;}
    public virtual ICollection<EmailRecipient> EmailRecipient { get; set; } 
}

public class EmailRecipient
{
    public int EmaiId { get; set; }
    public string RecipientEmailAddress { get; set; }
    public int RecipientEmailTypeId { get; set; }
    public virtual Email Email { get; set; }
}

ソース:

public class EmailViewModel
{
    public List<EmailRecipientViewModel> To { get; set; }
    public List<EmailRecipientViewModel> Cc { get; set; }
    public string Subject { get; set; }
    public string Body { get; set; }
}

public class EmailRecipientViewModel
{
    public string RecipientEmailAddress { get; set; }
}

が欲しいです Mapper.Map<EmailViewModel,Email>()

ここで私は私をマッピングしたいEmail.EmailRecipientとの組み合わせとしてEmailViewModel.ToEmailViewModel.Ccただし、条件は、ToのEmail.EmailRecipient.RecipientEmailTypeId場合は1 Ccの場合は2になります。

私の質問が明確であることを願っています。

チアゴサー

これを実現するための1つの可能な方法は、この変換に特定の方法を使用するマップを作成することです。マップの作成は次のようになります。

Mapper.CreateMap<EmailViewModel, Email>()
    .ForMember(e => e.EmailRecipient, opt => opt.MapFrom(v => JoinRecipients(v)));

JoinRecipientsメソッドが変換自体を実行する場所単純な実装は次のようになります。

private ICollection<EmailRecipient> JoinRecipients(EmailViewModel viewModel) {
    List<EmailRecipient> result = new List<EmailRecipient>();
    foreach (var toRecipient in viewModel.To) {
        result.Add(new EmailRecipient {
            RecipientEmailTypeId = 1, 
            RecipientEmailAddress = toRecipient.RecipientEmailAddress
        });
    }

    foreach (var ccRecipient in viewModel.Cc) {
        result.Add(new EmailRecipient {
            RecipientEmailTypeId = 2,
            RecipientEmailAddress = ccRecipient.RecipientEmailAddress
        });
    }

    return result;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

複数のソースプロパティを単一の宛先プロパティにマッピングする

分類Dev

宛先からソースへのプロパティのマッピングをカスタマイズし、マップを逆にします

分類Dev

Automapperの宛先プロパティを更新します

分類Dev

AutoMapperは、ソースプロパティを内部宛先オブジェクトにマップします

分類Dev

エンティティタイプのプロパティをTPH継承を使用して複数のテーブルにマッピングするEF

分類Dev

マップ値としての一連のプロパティ

分類Dev

Automapper複数のオプションのプロパティをリストにマップします

分類Dev

単一および複数のプロパティを持つポリモーフィックPOJOへのJSONのマッピング

分類Dev

CNContactPickerの単一の連絡先から複数のプロパティを選択します

分類Dev

AutoMapperマッピングでプロパティのプロパティを無視する方法は?

分類Dev

AutoMapper: マッピングなしでネストされたプロパティの参照を設定

分類Dev

ジャクソンを使用して単一のJSONプロパティを複数のオブジェクトにマップする方法は?

分類Dev

Dapperを使用した複数の複合型プロパティのマッピング

分類Dev

strutsリソースバンドルプロパティファイルが一部のキーをマッピングしていません

分類Dev

内部プロパティから宛先クラスへのオートマッパーマップ

分類Dev

Automapperソースがnullの場合、宛先オブジェクトのプロパティを設定します

分類Dev

自動マッパーの欠落しているプロパティを使用したマッピング

分類Dev

Automapperを使用した1つのプロパティのマッピングを無視する

分類Dev

Spring Rest:BeanのプロパティをネストされたJSONとしてマッピングする

分類Dev

複数のかみそりのテキストボックスの値を単一のプロパティ値に連結する方法

分類Dev

カスタムロジックを使用してプロパティをマッピングするAutomapperのより良い方法

分類Dev

AutoMapperは、宛先ですべてのプロパティをNULLに設定します

分類Dev

Automapperマッピングでソースプロパティの元の値を保持するにはどうすればよいですか?

分類Dev

単純なプロパティとナビゲーション プロパティ間のマッピングを取得する - Entity Framework 5

分類Dev

automapper-リストプロパティを個々の単一プロパティにフラット化する

分類Dev

AutoMapper:プロパティがソースに存在しない場合、宛先値を保持します

分類Dev

同じプロパティの複数を持つマングース$ elemMatch

分類Dev

EF6のすべてのプロパティのカスタムプロパティマッピングを作成します

分類Dev

AutoMapperの子リストプロパティの「カウント」のマッピング

Related 関連記事

  1. 1

    複数のソースプロパティを単一の宛先プロパティにマッピングする

  2. 2

    宛先からソースへのプロパティのマッピングをカスタマイズし、マップを逆にします

  3. 3

    Automapperの宛先プロパティを更新します

  4. 4

    AutoMapperは、ソースプロパティを内部宛先オブジェクトにマップします

  5. 5

    エンティティタイプのプロパティをTPH継承を使用して複数のテーブルにマッピングするEF

  6. 6

    マップ値としての一連のプロパティ

  7. 7

    Automapper複数のオプションのプロパティをリストにマップします

  8. 8

    単一および複数のプロパティを持つポリモーフィックPOJOへのJSONのマッピング

  9. 9

    CNContactPickerの単一の連絡先から複数のプロパティを選択します

  10. 10

    AutoMapperマッピングでプロパティのプロパティを無視する方法は?

  11. 11

    AutoMapper: マッピングなしでネストされたプロパティの参照を設定

  12. 12

    ジャクソンを使用して単一のJSONプロパティを複数のオブジェクトにマップする方法は?

  13. 13

    Dapperを使用した複数の複合型プロパティのマッピング

  14. 14

    strutsリソースバンドルプロパティファイルが一部のキーをマッピングしていません

  15. 15

    内部プロパティから宛先クラスへのオートマッパーマップ

  16. 16

    Automapperソースがnullの場合、宛先オブジェクトのプロパティを設定します

  17. 17

    自動マッパーの欠落しているプロパティを使用したマッピング

  18. 18

    Automapperを使用した1つのプロパティのマッピングを無視する

  19. 19

    Spring Rest:BeanのプロパティをネストされたJSONとしてマッピングする

  20. 20

    複数のかみそりのテキストボックスの値を単一のプロパティ値に連結する方法

  21. 21

    カスタムロジックを使用してプロパティをマッピングするAutomapperのより良い方法

  22. 22

    AutoMapperは、宛先ですべてのプロパティをNULLに設定します

  23. 23

    Automapperマッピングでソースプロパティの元の値を保持するにはどうすればよいですか?

  24. 24

    単純なプロパティとナビゲーション プロパティ間のマッピングを取得する - Entity Framework 5

  25. 25

    automapper-リストプロパティを個々の単一プロパティにフラット化する

  26. 26

    AutoMapper:プロパティがソースに存在しない場合、宛先値を保持します

  27. 27

    同じプロパティの複数を持つマングース$ elemMatch

  28. 28

    EF6のすべてのプロパティのカスタムプロパティマッピングを作成します

  29. 29

    AutoMapperの子リストプロパティの「カウント」のマッピング

ホットタグ

アーカイブ