最近AutoMapperをアップグレードし、アイテムを特定の方法でマッピングするときに問題が発生しました。
NHibernateドメインオブジェクトをロードし、次の方法でモデルをそれにマップしようとすると、次のようになります。
var myPoco = new MyPoco();
var proxy = repository.Load<MyDomainObject>(id);
Mapper.Map(myPoco, proxy);
次のエラーが発生します。
Missing type map configuration or unsupported mapping.
MyPoco-> MyDomainObjectProxy
ただし、次のメソッドのオーバーロードを使用しても、例外は発生しません。
var myDomainObj = Mapper.Map<MyPoco, MyDomainObject>(myPoco);
AutoMapperコードを調べると、これらのメソッドがコードベース内の異なるベースメソッドを呼び出すことがわかります。これが、動作が異なる理由です。
これは新しいバージョンのAutoMapperのバグですか、それともプロキシでMapper.Map(source、destination)メソッドを使用する別の方法がありますか?
注:これはAutoMapper2.2.0を使用しています。これは0.3でうまくいったと思います。