問題タブ [automapper-3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
489 参照

c# - オートマッパーでリスト内の条件付きオブジェクトを平坦化する方法

AutoMapperを使用してそれぞれのオブジェクトにマップされる のItemリストを含む があります。ProductViewModel

私の MVC プロジェクトにはItem、選択したを表示する Action メソッドがありますProduct。このために、フラット化されたオブジェクト、のリスト、およびフラット化された選択されたオブジェクトを含むViewModel呼び出しがあります。ItemDetailsViewModelItemProductViewModelProduct

私が抱えている問題は、この平坦化された選択済みを最もよく表示することですProduct

Itemたとえば色ごとに複数のバリエーションを選択できるeBay のようなものだと考えてください。私にとって、複数のバリエーションはProducts. ユーザーが を選択すると、つまり、 のリスト、および選択されたProductが返されます。ItemDetailsItemProductsProduct

私はこれを行う最善の方法を考えていましたか?現時点では、私のメソッドは を にマッピングしItemItemDetailsViewModel必要なものを選択してから、バックProductViewModelの各プロパティを に具体的にマッピングしています。また、とが同じ名前のプロパティを持っているため、製品を元にマッピングする最後の行でs id とコードが上書きされます。ProductViewModelItemDetailsViewModelItemProductItem

マッピングを構成する最善の方法について何か提案はありますか?

選択ProductViewModelした をItemDetailsViewModel.

クラス

アクション

0 投票する
1 に答える
1483 参照

c# - Automapper が接頭辞で平坦化されていない

規約ベースの自動マッピングのおかげで、ドメイン オブジェクトからマッピングされた DTO がいくつかあります。つまり、アドレス フィールドが DTO にフラット化されています。

これは Domain -> DTO 変換では問題なく機能しますが、別の方法では Address を手動で「非平坦化」する必要があります。

マッピング構成を「プレフィックス」する可能性があるのではないかと思うので、次のようなことができます

そうしないと、各 Address フィールドを手動でマップする必要があり、より複雑なオブジェクトではこれが問題になります。

ドメイン オブジェクトと DTO

および次の DTO:


編集

グローバル構成の「認識されたプレフィックス」を認識しています。特定のマップに必須のプレフィックス(「認識されたものの1つ」ではない)を設定したいと思います。

0 投票する
1 に答える
52 参照

automapper-3 - オブジェクトのオートマッパー構成

私はこれらのクラスを持っています

私は を持っており、それを Album.Name へのマッピングでマッピングしList<Album>たいと考えています。Automapper でこれを設定するにはどうすればよいですか?NamedEntityListViewModelNamedEntityViewModel.Name

0 投票する
0 に答える
206 参照

c# - フラット ドメイン オブジェクトからネストされた SOAP XML へのマッピング

深くネストされ、多くのフィールドを含む wsdl から生成された xml があります。xml の構造は次の形式です。

wsdl からクラスごとに生成しましたが、このフィールドを手動でマッピングするとエラーが発生しやすく、それが最善の方法であるかどうかもわかりません。オートマッパーでこれを行うことは可能ですか。

マッピングの運がないオートマッパーで上記を試しました。この種のオブジェクトを 600 以上のフィールドで維持できるようにマッピングする方法についてのアイデア 余談ですが、私のドメインは本当にフラットです。

0 投票する
0 に答える
824 参照

c# - ValueResolver を使用したカスタム コレクション型への Automapper マッピングが失敗する

ジェネリック コレクションを含むクラスをマップしようとしていますが、そのクラスを別のカスタム タイプのコレクションである別のクラスにマップしたいと考えています。ただし、マッピングを実行しようとすると、AutomapperMapperException が発生します。問題を再現する簡単なテスト プロジェクトを作成しました。

Mapper.Map() メソッドを呼び出すと、次の例外が発生します。これは、FooCollection から IFooCollection にマップする方法がわからないことを示唆しています。

内部例外は次のように述べています。

...最後に私の質問は次のとおりです。オートマッパーを取得して、コレクションをカスタムコレクションタイプにマップするにはどうすればよいですか? .AfterMap(..) を使用して手動で変換を正常に行うことができましたが、それがこの問題の意図した解決策であるかどうかわかりませんか?