1

これを機能させることができません:

Mapper.CreateMap<Source, Destination>();

var context = new MyDbContext();

var source = new Source();
var destination= context.Destinations.First();

Mapper.Map<Source, Target>(source, destination)

スロー::AutoMapper.AutoMapperMappingExceptionタイプマップ構成が欠落しているか、マッピングがサポートされていません。

これは機能します:

Mapper.CreateMap<Source, Destination>();

var source = new Source();
var destination= new Destination();

Mapper.Map<Source, Target>(source, destination)

エンティティフレームワークが私のDestinationクラスの動的プロキシクラスを作成しているのは、それが機能しない理由ですか?

宛先パラメータがなくても、次のように機能します。

var destination = Mapper.Map<Source, Target>(source);
4

2 に答える 2

1

これはバグであり、AutoMapperの開発ブランチで修正されています。AutoMapperのプレリリースバージョンには修正があります。または、2.2.1リリースまで少し待ちます。

于 2013-02-12T01:17:55.197 に答える
0

その理由は、efがプロキシを作成したためです。例外は、サブクラスが宛先として使用される場合に発生します。宛先タイプは、で定義されたタイプとまったく同じタイプである必要があるようCreateMap<>です。派生タイプは機能しません。

DynamicMap<>でもうまくいくようですので、おそらくそれを使います。

于 2012-12-13T00:20:45.030 に答える