オートマッパーによるマップされていないプロパティのマッピングの無視
オートマッパーを使用して 2 つのクラス間でマッピングする場合、1 つ以上のプロパティがソース クラスが宛先クラスに存在しません。これにより、マッピング プロセス中に例外が発生する可能性があります。
次の例を考えてみましょう:
class OrderModel { public string ProductName; } class Orders { } CreateMap<OrderModel, Orders>();
この場合、OrderModel を Orders クラスにマップしようとすると、次のことを示す例外が発生します。 OrderModel のプロパティ ProductName はマップされていません。この問題を解決し、オートマッパーがマップされていないプロパティのマップを試行しないようにするには、ForMember メソッドを Ignore と組み合わせて使用します。
CreateMap<OrderModel, Orders>() .ForMember(x => x.ProductName, opt => opt.Ignore());
オプションとして Ignore を指定すると、Automapper は ProductName プロパティのマッピングをスキップします。 。これにより、例外が発生することなくマッピング プロセスを続行できるようになります。
更新: Ignore の代わりに DoNotValidate
AutoMapper 8.0 では、Ignore オプションが DoNotValidate に置き換えられました。したがって、上記のコード スニペットは次のように更新する必要があります:
CreateMap<OrderModel, Orders>() .ForMember(x => x.ProductName, opt => opt.DoNotValidate());
以上がAutoMapper でマップされていないプロパティを無視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。