問題タブ [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# - 双方向マッピング用のシンプルなコンベンションオートマッパー(ViewModelsとの間のエンティティ)
更新:このようなものは素晴らしいプロジェクトに進化しました。http: //valueinjecter.codeplex.comで参照してください。
これをチェックしてください。私は単純なオートマッパーを作成しました。これは、あるオブジェクトの同じ名前とタイプのプロパティから値を取得し、それを別のオブジェクトに配置します。必要なタイプごとに例外(ifs、switch)を追加できます。
それで、あなたはそれについてどう思いますか?
私はそれをしたので、私はこのようなことをすることができました:
それが始まった方法です:
DropDownsのInputs/Dto / ViewModelsで「object」タイプを使用します。これは、HTMLにIEnumerable <SelectListItem>を送信し、選択したキーの文字列配列を受け取るためです。
更新:
実際の使用法:
ビルドメソッド(入力= Dto):
コントローラ内:
実際のMapメソッド
c# - C#オートマッパーのネストされたコレクション
私はこのような単純なモデルを持っています:
Automapperで私がしていることはこれです:
「OrderDtoのプロパティOrderLineDtosがマップされていないので、カスタムマッピングを追加してください...」という例外がスローされます。ドメインとDomainDtoでカスタム構文を使用しているため、OrderDtoのコレクションOrderLineDtosがに対応するように指定するにはどうすればよいですか。 OrderLines in Order?
ありがとうございました
.net - Bootstrapper で Automapper を構成すると、Open-Closed 原則に違反しますか?
Bootstrapper で Automapper を構成していて、 で を呼び出してBootstrap()
い ますが、新しいマッピングを追加する必要があるたびにクラスApplication_Start()
を変更する必要があるため、これは間違っていると言われたので、Open-Closed Principle に違反しています。 Bootstrapper
.
私は本当にこの原則に違反していると思いますか?
c# - ジェネリック型継承による AutoMapper
AutoMapper を使用して、CustomerDTO をドメイン エンティティ ICustomer にマップしようとしています。最初の継承レベルではすべてが正常に機能しますが、他の継承レベルでは機能しません。
具体的な型は、LinqToSql データベース インフラストラクチャ レイヤーから StructureMap によって注入されるため、ドメイン モデルにインターフェイスを使用しています。
今AutoMapperマッピング
今、私はマッピングを使用しています
「Id」プロパティで Dictionnary missing Key Exception があります...
automapper - IList を使用した AutoMapper
プロパティを持つ Article クラスがあります
タグの SET がないため、オートマッパーはビューモデルからビューへのマッピング時にタグを設定しません。何か案は?
asp.net-mvc - EditModelをコマンドメッセージにマップする方法は?
LosTechiesのJimmyBogardは、EditModelをDomainModelにマッピングするのではなく、EditModelをコマンドメッセージにマッピングすると述べています。誰かがこれをさらに説明できますか?
c# - AutoMapperで例外を取得する
automapperを使用して、ドメインからlinq、sqlクラスにクラスをマップするメソッドの単体テストを行っています。大まかに言って、クラスとマッピングは以下のとおりです(SupplierEligibilityAllocatedはL2S自動生成クラスです)。
ただし、メソッドがマッピングを実行すると、次の例外がスローされます。
テストの前にマッピングを作成していることを確認し、Mapper.AssertConfigurationIsValid()
問題なく電話をかけました。また、問題なく手動でマッピングを行いました。誰がこれを引き起こしている可能性があるかについての考えを持っていますか?
c# - Automapper: 作成したマップの再利用
たとえば、次のようなものがあるとします。
そして、私が持っています
Foo から FooDto へのマッピング ロジックをもう一度繰り返す必要があります。
現時点では、ValueResolver 内で Mapper.Map を使用していますが、もっと良い方法があると思います
c# - AutoMapper: IDataReader と DTO オブジェクト間のマッピング
ストアド プロシージャの結果を含む DataReader があります。列の命名規則では、スペースにアンダースコアを使用します。
IDataReader と IEnumerable の間で正常にマップできましたが、フィールドが完全に一致している場合のみです。ストアド プロシージャで使用される命名規則を使用して、オブジェクトのフィールドに名前を付ける方法を決定したくありません。データベース側でも同じことが言えます。DBA に Pascal Case を適用してもうまくいくとは思えません。
マップする必要があるフィールドごとに ForMember() を使用する必要はありません。それは、AutoMapper を使用する目的に反します。
テストで参照として使用したトピックに関する以前の投稿を見つけました。テストに合格するための正しい構成/マッピングを取得できませんでした。誰かが助けてくれることを願っています。
asp.net-mvc - カスタムフォーマットを使用したASP.NETMVCViewModelマッピング
私が取り組んでいるプロジェクトには、ドメインモデルに多数の通貨プロパティがあり$#,###.##
、ビューとの間で送受信するためにこれらをフォーマットする必要があります。私は、使用できるさまざまなアプローチについて考えてきました。1つのアプローチは、Steve Michelottiの「Pattern1」のように、ビュー内で値を明示的にフォーマットすることです。
...しかし、これはDRYの原則にすぐに違反し始めます。
推奨されるアプローチは、DomainModelとViewModelの間のマッピング中にフォーマットを実行することであるように見えます(アクションセクション4.4.1および「パターン3」のASP.NET MVCによる)。AutoMapperを使用すると、次のようなコードが生成されます。
IValueFormatter
この方法を使用するとうまくいきます。では、DomainModelからViewModelにマップする方法を教えてください。カスタムを使ってみましたclass CurrencyResolver : ValueResolver<string,decimal>
そしてそれを次のようにマッピングしました:
これはこのテストを満たします:
...しかし、プロパティは同じ名前であるため、マッピング元のプロパティを明示的に定義する必要はないと感じていFromMember
ます。このマッピングを定義するためのより良い方法はありますか?ResolveUsing
前述したように、この方法でマッピングする必要がある通貨値を持つプロパティが多数あります。
そうは言っても、いくつかのルールをグローバルに定義することで、これらのマッピングを自動的に解決する方法はありますか?ViewModelプロパティはすでに検証用のDataAnnotation
属性で装飾されて[DataType(DataType.Currency)]
いるので、次のようなルールを定義できることを期待していました。
...各オブジェクトタイプのボイラープレート設定の量を最小限に抑えることができるようにします。
また、ビューとの間でカスタムフォーマットを実行するための代替戦略についても興味があります。
最初は、この単純なオブジェクトをビューに直接渡したいと思うかもしれませんが、DateTime?[モデル内の]プロパティは問題を引き起こします。たとえば、ToShortDateString()やToString()などのフォーマットを選択する必要があります。プロパティがnullの場合に画面が拡大しないように、ビューはnullチェックを強制されます。ビューは単体テストが難しいため、できるだけ薄くしていきたいと考えています。ビューの出力は応答ストリームに渡される文字列であるため、文字列に適したオブジェクトのみを使用します。つまり、ToString()が呼び出されたときに失敗することのないオブジェクトです。ConferenceFormビューモデルオブジェクトはその一例です。リスト4.14で、すべてのプロパティが文字列であることに注意してください。このビューモデルオブジェクトがビューデータに配置される前に、日付が適切にフォーマットされます。このように、ビューはオブジェクトを考慮する必要がなく、情報を適切にフォーマットできます。