API検索メソッドから検索結果が返されましたが、応答内容の長さをできるだけ短くしたいと思います。AutoMapperは外部値に基づいてプロパティを条件付きでマップします
私もAutoMapperをセットアップしました。それ自体は、プロファイルに設定されたさまざまなマッピングでうまく動作しています。
検索結果のプロパティの1つがかなり重い場合があり、必ずしも必要とされないため、そのデータを含める必要はありません。だから私はこのプロパティを含めるフラグを追加した検索条件に。
この他の外部要因に基づいてプロパティを条件付きでマップする方法はありますか?
現時点では、地図の設定で重みのあるプロパティを無視するように指示してから、条件で指定した場合は、別のコレクションをマッピングして検索結果に割り当てます。
コード内
this.CreateMap<myModel, myDto>()
.ForMember((dto) => dto.BigCollection,
(opt) => opt.Ignore())
、次いで:マッピングプロファイルにあなたがAutomapper 5.0を使用している場合
results.MyDtos = myModels.Select((m) => Mapper.Map<myDto>(m));
if (searchCriteria.IncludeBigCollection)
{
foreach(MyDto myDto in results.MyDtos)
{
// Map the weighty property from the appropriate model.
myDto.BigCollection = ...
}
}
"外的要因"とはどのスコープを意味するのですか?何かグローバル(設定ファイルのもの)?または 'Map'メソッドで渡すメソッドスコープのものです。 – MaKCbIMKo
メソッドスコープから、検索基準オブジェクトのメソッドに渡されます。 –