で継承を使用する方法を調べてきましたが、AutoMapper完全に機能させるのに苦労していLinqます。これが私のコードです:
ここでマッピングを定義しました:
CreateMap<Article, ArticleDetailsViewModel>()
.Include<Article, ArticleNewsItemDetailsViewModel();
CreateMap<Article, ArticleNewsItemDetailsViewModel>();
ArticleDetailsViewModelの基本クラスですArticleNewsItemDetailsViewModel。
私が持っていた場合、ここに問題があります:
CreateMap<ArticleNewsItem, ArticleNewsItemDetailsViewModel>();
ビュー モデルのすべてのプロパティは、対応する Linq オブジェクトと同じ名前であるため、自動的にマップされます。ただし、Article => ArticleNewsItemDetailsViewModelマッピングを使用しているため、これは不可能です。代わりに、それぞれを次のように定義する必要があります。
.ForMember(x => x.Property1, opt => opt.MapFrom(src => src.ArticleNewsItem.Property1)
すべてのプロパティを からArticleNewsItemDetailsViewModel新しいビュー モデルに移動し、そのクラスを 内のプロパティにすることを考えましArticleNewsItemDetailsViewModelた。これら 2 つのオブジェクト間にマッピングがある限り、それは機能しますが、あまりクリーンではありません。
これを回避する方法はありますか?