問題タブ [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.
c# - オートマッパーでリスト内の条件付きオブジェクトを平坦化する方法
AutoMapperを使用してそれぞれのオブジェクトにマップされる のItem
リストを含む があります。Product
ViewModel
私の MVC プロジェクトにはItem
、選択したを表示する Action メソッドがありますProduct
。このために、フラット化されたオブジェクト、のリスト、およびフラット化された選択されたオブジェクトを含むViewModel
呼び出しがあります。ItemDetailsViewModel
Item
ProductViewModel
Product
私が抱えている問題は、この平坦化された選択済みを最もよく表示することですProduct
。
Item
たとえば色ごとに複数のバリエーションを選択できるeBay のようなものだと考えてください。私にとって、複数のバリエーションはProducts
. ユーザーが を選択すると、つまり、 のリスト、および選択されたProduct
が返されます。ItemDetails
Item
Products
Product
私はこれを行う最善の方法を考えていましたか?現時点では、私のメソッドは を にマッピングしItem
、ItemDetailsViewModel
必要なものを選択してから、バックProductViewModel
の各プロパティを に具体的にマッピングしています。また、とが同じ名前のプロパティを持っているため、製品を元にマッピングする最後の行でs id とコードが上書きされます。ProductViewModel
ItemDetailsViewModel
Item
Product
Item
マッピングを構成する最善の方法について何か提案はありますか?
選択ProductViewModel
した をItemDetailsViewModel
.
クラス
アクション
c# - Automapper が接頭辞で平坦化されていない
規約ベースの自動マッピングのおかげで、ドメイン オブジェクトからマッピングされた DTO がいくつかあります。つまり、アドレス フィールドが DTO にフラット化されています。
これは Domain -> DTO 変換では問題なく機能しますが、別の方法では Address を手動で「非平坦化」する必要があります。
マッピング構成を「プレフィックス」する可能性があるのではないかと思うので、次のようなことができます
そうしないと、各 Address フィールドを手動でマップする必要があり、より複雑なオブジェクトではこれが問題になります。
ドメイン オブジェクトと DTO
および次の DTO:
編集
グローバル構成の「認識されたプレフィックス」を認識しています。特定のマップに必須のプレフィックス(「認識されたものの1つ」ではない)を設定したいと思います。
automapper-3 - オブジェクトのオートマッパー構成
私はこれらのクラスを持っています
私は を持っており、それを Album.Name へのマッピングでマッピングしList<Album>
たいと考えています。Automapper でこれを設定するにはどうすればよいですか?NamedEntityListViewModel
NamedEntityViewModel.Name
c# - フラット ドメイン オブジェクトからネストされた SOAP XML へのマッピング
深くネストされ、多くのフィールドを含む wsdl から生成された xml があります。xml の構造は次の形式です。
wsdl からクラスごとに生成しましたが、このフィールドを手動でマッピングするとエラーが発生しやすく、それが最善の方法であるかどうかもわかりません。オートマッパーでこれを行うことは可能ですか。
マッピングの運がないオートマッパーで上記を試しました。この種のオブジェクトを 600 以上のフィールドで維持できるようにマッピングする方法についてのアイデア 余談ですが、私のドメインは本当にフラットです。
c# - ValueResolver を使用したカスタム コレクション型への Automapper マッピングが失敗する
ジェネリック コレクションを含むクラスをマップしようとしていますが、そのクラスを別のカスタム タイプのコレクションである別のクラスにマップしたいと考えています。ただし、マッピングを実行しようとすると、AutomapperMapperException が発生します。問題を再現する簡単なテスト プロジェクトを作成しました。
Mapper.Map() メソッドを呼び出すと、次の例外が発生します。これは、FooCollection から IFooCollection にマップする方法がわからないことを示唆しています。
内部例外は次のように述べています。
...最後に私の質問は次のとおりです。オートマッパーを取得して、コレクションをカスタムコレクションタイプにマップするにはどうすればよいですか? .AfterMap(..) を使用して手動で変換を正常に行うことができましたが、それがこの問題の意図した解決策であるかどうかわかりませんか?