2016-09-07 8 views
0

私はEntity FrameworkエンティティからビューモデルオブジェクトへのシンプルなAutoMapperマッピングを設定しようとしています。ほとんどは動作しますが、ビューモデルではカウントを保持するintフィールドがあります。このフィールドはソースエンティティには存在しません。計算された値でAutoMapperマッピングを作成しますか?

cfg.CreateMap<Feed, FeedVM>() 
    .ForMember(dest => dest.Count, opt => opt.MapFrom(src => src.Orders.Count())); 

私はマッピングの有効性を確認すると、私は次のようなエラーメッセージが出ます:

フィードで次のプロパティをマッピングすることができません。

は、カスタムマッピング式を追加無視し、追加しますカスタムレゾルバを作成したり、送信先タイプのフィードを変更することができます。 コンテキスト:私が正しくAutomapper構文を理解していれば

を養うためにタイプFeedVMから マッピング私は、フィードからFeedVMにマッピングしていますが、エラーメッセージは、私がフィードにFeedVMからマッピングしていたことを示すように思われます。

値42をFeedVMのCountフィールドにマップするにはどうすればよいですか?あなたはResolveUsingを使用する必要があります

+0

受理された回答のコメントの中で、OPは質問にあるものとは異なるエラーが発生していることを認識しているので、この質問を閉じるよう投票しました。 – krillgar

答えて

0

ジョンはマッピングが正しいことを以下のコメントに示し

cfg.CreateMap<Feed, FeedVM>() 
    .ForMember(dest => dest.Count, opt => opt.ResolveUsing(src => src.Orders.Count())); 
アップデートは、問題が Feedに関連している別のエンティティのマッピングです。そのエンティティでは、彼は両方の方向をマッピングしています。

+0

私の例をシンプルにするために、私は単純化しすぎたかもしれません。むしろ "42"私は関連オブジェクトのカウントを取得するLinqクエリを実行しています。私はそれに応じてコード例を修正しました。 UseValueはまだ正しいオプションですか? –

+0

ああ、私はそれを試してあなたのソースコードを持っていないので、 'MapFrom'の代わりに' ResolveUsing'を使うことができますか? : '.ForMember(dest => dest.Count、opt => opt.ResolveUsing(src => src.Orders.Count())); ' –

+0

これは同じ検証エラーをスローします。もっと明確にするためのコードを少し持ち込むことができるかどうかがわかります。 –

関連する問題