問題タブ [automapper]
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# - WCF + DTO + Automapperを使用することは可能ですか?
WCF + DTOを使用する構造でオートマッパーを使用したいのですが、エンティティフレームワーク4.0での熱心な読み込みの質問がオートマップのマッピングでどのように機能するかを知りたいです。
asp.net-mvc - 複数の集約ルートを持つビューモデルを処理するには?
現時点では、私はかなりひどいビューモデルを手に入れました。
クラスは次のようになります=>
問題は、Reader タイプがドメイン モデルに由来することです (SRP 違反)。
基本的に、私はデザインのヒントを探しています (つまり、ビューモデルを入力/出力に分割するのは良い考えですか?) ビューモデルを摩擦のない開発者に優しいものにする方法 (つまり、マッピングはコントローラーの基本クラスを使用して自動的に機能するはずです) ?
私は AutoMapper フレームワークを認識しており、おそらくそれを使用するつもりです。
もう一度言いますが、適切なビュー モデルを作成する際によくある落とし穴は何ですか? それをどのように構造化するのですか?複数のドメイン オブジェクトの入力が必要な場合、マッピングはどのように行われますか?
ビューが複数の集約ルートからのデータを必要とする場合について混乱しています。Library、Reader、BibliographicRecord などのエンティティを持つアプリを作成しています。
私の場合-ドメインレベルでは、これら3つのタイプすべてをグループ化することは意味がありませんLibraryReaderThatHasOrderedSomeBooks
が、特定の図書館の特定の読者向けに注文された書籍に関するリストを表示するビューには、それらすべてが必要です。
そのため、その下にあるビューモデルを使用してビューを作成しOrderedBooksList
、ビューモデルを作成しても問題ないようです。またはさらに良い-フラット化手法を活用し、などの小道具を持つビューモデル。OrderedBooksListModel
LibraryOutput
ReaderOutput
BibliographicRecordOutput
OrderedBooksListModel
ReaderFirstName
LibraryName
しかし、複数の入力があるため、マッピングの問題が発生します。
1 つの集約ルートのみを開始するのは、もはや 1:1 の関係ではありません。
それは、私のドメイン モデルがちょっと間違っているということですか?
また、純粋に UI レイヤーにあるビュー モデル フィールド (つまり、チェックされたタブを示す列挙型) についてはどうでしょうか。
このような場合、これは誰もがすることですか?
やりたくない=>
書き込みが多いようです。:)
現時点でこれを読んでいます。そしてこれ。
Ok。私はこの問題についてよく考えました。そうです-別の抽象化レイヤーを追加することは解決策のようです=>
だから - 私の考えでは、これはすでに機能しています。
ジミー
asp.net-mvc - AutoMapperカスタムタイプコンバータの依存関係
Automapperを実装して、ViewModelをエンティティにマップしようとしています。エンティティのプロパティの1つがエンティティでもあります。
コンバーターでNHibernateのISession.Load<>メソッドを使用してこれをロードしたいと思います。
それで、問題は、ISessionをITypeConverter実装に注入する最良の方法は何ですか?また、注入されたISessionは破棄されるため、マッピングが必要になるたびに新しいISessionを注入する必要があることに注意してください。
automapper - リストプロパティに関するAutomapperの初心者の質問
AutoMapper の新しいファンとして、AutoMapper を使用して次のことを行うにはどうすればよいでしょうか。
次のクラスが与えられた場合、アイテム文字列のリストがアイテムのタイトル プロパティにマップされる Group から FlattenedGroup を作成したいと考えています。
ありがとう
ジョセフ
c# - Entity Framework (エンティティ クラス) のシリアル化
Enitity Framework について読んだ後、いくつか質問があります。
1]ティア間でエンティティを転送する最良の方法は何ですか? a]これのために軽量のDTOを作成する必要がありますか、それともエンティティを効果的にシリアル化して転送できますか?
b]効率のために軽いDTOを作成する必要があり、Automapperの優れた使用法を見た後、それが余分なコーディングをどのように節約するかをよく理解していませんでした(それが目標である場合)、つまり、flatterクラスを書く必要があります( DTO) properties であるため、ctor のみが保存されます。
2] DTOからエンティティクラスを構築するポイントはありますか?
ありがとう。
c# - オートマッパーコンベンション
Automapperを使用すると、マッピング先のエンティティに「ViewModel」とだけ追加されている状況でマップを手動で作成する必要がないように、規則を設定できます。
例として、次のマップを設定する必要はありません。
カスタムマップを作成するために投影が必要かどうかは理解していますが、マップを作成するための規則があると便利です。
c# - Automapperカスタムマッピング例外
アップデート1-13-10 マッピングに以下のコードを使用して、ある程度の成功を収めることができました。私は基本的に、マッピングを持たないプロパティを無視し、後でそれらをマッピングしています。私がこれを可能な限り最善の方法で行っているかどうかについてのフィードバックをいただければ幸いです。さらに、このマッピングの単体テストを行う方法がわかりません。AutoMapperを使用すると、各プロパティをチェックする面倒な作業が軽減されるはずだというのが私の印象でした。
これが私の新しいコードです:
元の投稿:
BussinessオブジェクトからDTOにマップするために、初めてAutoMapperを使用しようとしています。次の例外を含め、トラブルシューティングの方法がわからない問題が発生しています。
AutoMapper.AutoMapperMappingException:Graebel.SP.BO.MoveEntityをGraebel.SOA.Contracts.DataContracts.SP.MoveEntityにマップしようとしています。タイプ「AutoMapper.AutoMapperMappingException」の例外がスローされました
これが私が実行しているAutoMapperコードです:
これが私がマップしようとしているDTO(MoveEntityDto)です:
これが私がマップしようとしているビジネスオブジェクト(MoveEntity)です
各クラス内のプロパティは名前でほぼ完全に一致していますが、タイプは異なります。そのため、「MapFrom」式を使用してカスタムマッピングを実行しようとしました。ただし、AutoMapperでは、文句を言わずに、あるオブジェクトタイプから別のオブジェクトタイプを指すことができないようです。
また、プロパティからプロパティへのマッピングを試しましたが、運がありませんでした。次のようになりました。
ただし、これを試みると、次のような例外が発生します。
トップレベルのメンバーに解決する必要があります。パラメータ名:lambdaExpression。
AutoMapperで利用できるドキュメントを理解するのが難しいと感じています。このユーティリティを正しく使用する方法について、誰かが私を正しい方向に向けてくれませんか?
助けてくれてありがとう!
アダム
asp.net-mvc - カスタム ViewModel での検証属性の再利用
クライアント側の検証にxValを使い始めたときは、ドメイン モデル オブジェクトをビューモデルとして使用するか、ビューモデルにそれらのオブジェクトのインスタンスを埋め込んだアクション メソッドのみを実装していました。
ほとんどの場合、このアプローチは問題なく機能しますが、ビューでモデルのプロパティのサブセットのみを表示してポストバックする必要がある場合があります (たとえば、ユーザーがパスワードを更新したいが、残りのプロファイル データは更新したくない場合)。 .
1 つの (醜い) 回避策は、フォーム上に存在しない各プロパティの非表示の入力フィールドをフォーム上に作成することです。
どうやらここでのベスト プラクティスは、ビューに関連するプロパティのみを含むカスタム ビューモデルを作成し、Automapperを介してビューモデルを設定することです。ビューに関連するデータのみを転送しているため、はるかにクリーンですが、ドメイン モデル オブジェクトに既に存在する同じ検証属性を繰り返す必要があるため、完全にはほど遠いものです。
理想的には、MetaData 属性を介して Domain Model オブジェクトをメタ クラスとして指定したいと考えています (これは、「バディ クラス」とも呼ばれます)。ビューモデルには存在しません。
これに対するエレガントな回避策はありますか?xVal のソースコードをハッキングすることを検討していますが、これまで見落としていた別の方法があるかもしれません。
ありがとう、
エイドリアン
編集: ASP.NET MVC 2 の登場により、これは検証属性に関連する問題だけでなく、エディターおよび表示属性にも適用されます。
.net - コンパイル時のAutoMapperAssertConfiguration?
コンパイル時にマッピングを検証する方法はありますか?たとえば、多くの子エンティティを持つエンティティがあります。ParentXをParentYにマップしようとしたときに、子の1つにCreateMapを追加するのを忘れた場合、マッピングは失敗します。
コンパイル中にこれを検証する方法を考えることはできませんが、方法を見つけたいと思います。
c# - Can Automapper map a paged list?
I'd like to map a paged list of business objects to a paged list of view model objects using something like this:
The paged list implementation is similar to Rob Conery's implementation here: http://blog.wekeroad.com/2007/12/10/aspnet-mvc-pagedlistt/
How can you setup Automapper to do this?