2

viewModelの特定のフィールドに基づいてプロパティマッピングをスキップしようとしています。ForAllMembers->Conditionメソッドでソースオブジェクトにアクセスする方法はありますか

Mapper.CreateMap<AViewModel, AEntity>()
      .IgnoreMembers(ignoreMembers)
      .ForAllMembers(o => {
          o.Condition(ctx => {
                        //Need to access AViewModel instance here
                return "Id" == ctx.MemberName;
    });
   });
4

2 に答える 2

1

正式な方法はわかりませんがParentResolutionContext

Mapper.CreateMap<AViewModel, AEntity>()
      .IgnoreMembers(ignoreMembers)
      .ForAllMembers(o => {
          o.Condition(ctx => {
                AViewModel instance = (AViewModel)ctx.Parent.SourceValue;
                return "Id" == ctx.MemberName;
    });
   });

Parentマッピングの深い複数のレベルにいる場合は、探しているタイプが見つかるまで、関係を「トラバース」でき ます。

于 2012-04-04T11:47:11.643 に答える
0

カスタムValueResolverを使用して、これを別の方法で実行できる可能性があると思います。

見る:

AutoMapperを使用した条件付き投影

于 2012-04-04T11:56:14.060 に答える