問題タブ [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.

0 投票する
2 に答える
1203 参照

.net - AutoMapperのようなマッピングライブラリは.NETCompactFramework 3.5で利用できますか?

AutoMapperの.NETCompactFrameworkポートで作業している人はいますか、それとも.NET Compact Framework用の同様のマッピングライブラリがありますか?

0 投票する
2 に答える
12193 参照

c# - AutoMapper - ConstructedBy メソッドを使用してパラメータをカスタム リゾルバに渡す方法は?

私の ASP.NET MVC 2 (RC) プロジェクトでは、AutoMapper を使用して、Linq から Sql クラス (メディア) とビュー モデル (MediaVM) の間をマッピングしています。ビュー モデルには、ビューのドロップダウン用の SelectList プロパティがあります。データベースから SelectList プロパティ項目を設定するためのカスタム値リゾルバーがありますが、(ConstructedBy メソッドを使用して)ソース モデルからリゾルバーにいくつかの値を渡す方法があるかどうか疑問に思っています) a) 選択した項目を定義し、b ) db からアイテムをフィルタリングします。ソース オブジェクトはカスタム リゾルバに渡されますが、リゾルバはさまざまなタイプのソース オブジェクトを持ついくつかの異なるビュー モデルで使用されるため、マッピング構成で値を取得する場所を定義する必要があります。ここに私のビューモデルがあります:

オートマッパー マッピング構成:

.ForMember マッピング句で次のようなことができると便利です。

これを達成する方法はありますか?

0 投票する
4 に答える
2095 参照

asp.net - フィールドのサブセットを使用したビュー モデルとモデルの更新に関するベスト プラクティス

新しいサイトを開発するために MVC を選択したことで、自分の周りで「ベスト プラクティス」が明らかにリアルタイムで開発されている最中にいることに気づきました。2 週間前、NerdDinner は私のガイドでしたが、MVC 2 の開発により、時代遅れに見えます。それはスリリングな経験であり、インテリジェントなプログラマーと毎日密接に接触できることを光栄に思います。

現在、すべてのブログから直接回答を得られないように思われる問題に出くわしました。コミュニティから洞察を得たいと思います。編集についてです (読み: 編集アクション)。そこにあるチュートリアルやブログなどの資料の大部分は、モデルの作成と表示を扱っています。ですから、この質問は質問を綴っていないかもしれませんが、私が進むべき開発の道についての私の決定に貢献するために、いくつかの議論を進めたいと思っています.

私のモデルは、名前、住所、電子メールなどのいくつかのフィールドを持つユーザーを表します。実際、フィールド上のすべての名前は、ファーストネーム、ラストネーム、ミドルネームのそれぞれです。[詳細] ビューにはこれらのフィールドがすべて表示されますが、一度に変更できるのは、名前などの 1 つのフィールド セットのみです。他のフィールドが上下に表示されている間に、ユーザーがフォームを展開します。したがって、ポストバックされるフォームには、モデルを表すフィールドのサブセットが含まれます。

これは私たちと私たちのレイアウトの懸念事項にとって魅力的ですが、さまざまな理由から、真面目な MVC 開発者は避けなければなりません。私はいくつかのパターンとベスト プラクティスについて読んできましたが、これは viewmodel == view のパラダイムとは関係がないようです。それとも私はそれを間違っていますか?

とにかく、NerdDinner は FormCollection または UpdateModel の使用を指示します。null フィールドはすべて無視されます。それ以来、MVC コミュニティはこのアプローチを放棄しており、MVC 2 のバグは発見されていません。UpdateModel は、フォーム コレクションに完全なモデルがないと機能しません。

最も賞賛されているビュー モデル パターンは、カスタム ビュー モデル エンティティを含む専用ビュー モデルのようであり、私の設計上の問題と互換性を持たせることができる唯一のビュー モデルです。AutoMapperの使用と Jimmy Bogardのアイデアによって軽減されたとはいえ、退屈な量のマッピングが必要になりますが、それは価値がある場合とない場合があります。また、ビューとビュー モデルの 1 対 1 の関係も提案しています。

これらの設計パラダイムに沿って、拡大する一連のフィールドごとにビューと関連するビューを作成します。ビュー モデルはそれぞれほぼ同じで、読み取り専用のフィールドのみが異なり、ビューにも多くの繰り返しマークアップが含まれます。これはばかげているように思えます。将来的には、2 つ以上、またはすべてのフィールド セットを同時に開いて表示できるようにしたいと思うかもしれません。

私は、私が火をつけたいと思っている議論を最も注意深く読みます。よろしくお願いします。

0 投票する
3 に答える
2216 参照

asp.net - Automapper の目的は何ですか?

Automapperの目的は何ですか?

ドメインとコントローラー層 (asp.net mvc) でどのように役立ちますか?

0 投票する
6 に答える
13822 参照

c# - Automapperを使用して複数のDTOオブジェクトを単一のViewModelにマップすることは可能ですか?

Automapperを使用して複数のDTOオブジェクトを単一のViewModelオブジェクトにマップできるかどうか疑問に思いましたか?

基本的に、複数のDTOオブジェクトがあり、ASP.NETMVC2.0の単一の画面にそれぞれの情報を表示したいと考えています。そのために、DTOオブジェクト(またはそれらの一部...)をViewmodelにフラット化し、そのビューモデルをビューに渡します。1つのDTOがあればこれは簡単ですが、複数のDTOで行われるのを見たことがありません。明らかに、これを行うには(オートマッパー以外で)いくつかの回り道がありますが、これは可能であれば私が採用したいアプローチです。

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

c# - ViewModel / パーシャルを AutoMapper でマップする

プレゼンテーション モデルを作成しましたが、それを (AutoMapper を使用して) ViewModel にマップしたいと考えています。ViewModel は複合です / 私はパーシャルを使用していて、たとえば KeyboardsViewModel を他のビュー/パーシャルでも再利用したいからです。

このプレゼンテーション モデルを ViewModel にマップ (セットアップ マッピング) するにはどうすればよいですか? これは正しいアプローチですか?

ありがとう!

編集済み:試してみた後、これが1つのオプションだと思います:

うまくいくようですが、これが最適/正しい方法かどうかはわかりません...

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

c# - AutoMapper の ValueResolver を使用して EF エンティティの EntityKey 値をマップする一般的な方法はありますか?

タイトルが意味をなすかどうかはわかりませんが、これが私がやっていることです。AutoMapper を使用して、Entity Framework エンティティを DTO オブジェクトに、またはその逆にマップしています。問題は、DTO データを EF エンティティにマップしようとしたときに発生します。EntityKey のプロパティ間のマッピングはありません。これを修正するために、次のようなことを行います。

VideoEntityKeyResolver クラスは次のようになります。

コンストラクターでエンティティ セット名、キー プロパティ名、およびキー値を取るコンストラクターを持つ 1 つのクラスを持つことができる、これを行うためのより一般的な方法があるかどうか疑問に思っていました。

DTO オブジェクトを作成する全体的なポイントは、アプリケーションの残りのデータ層との結びつきを断ち切ることだったので、ストリームを横断するように聞こえる EntityKey プロパティを DTO オブジェクトに追加することだけを考えました。

まったく関係のないことですが (必要に応じて新しい質問を作成できます)、AutoMapper を使用する場合、どこでマッピングを定義する必要がありますか? 現在、私はコンテキスト オブジェクト (私の EF リポジトリ オブジェクト) のコンストラクターでそれを行っていますが、それはかなりコストがかかり、正しくないと思いますが、機能します。

0 投票する
5 に答える
11931 参照

c# - Entity Framework、AutoMapper、エンティティの更新の処理

私は最近EntityFramework1.0を使い始めたばかりで、誰もが話している苦痛を感じ始めていると思います。ベストプラクティスを使用しようとしているので、AutoMapperを介してエンティティとの間でマッピングされる一連のDTOがあります。

本当の問題は、オブジェクトを更新しようとしているときです。最初の落とし穴は、新しいエンティティを作成し、DTOからデータを転送し、それでもエンティティObjectContextに変更されたことを認識させる方法が見つからなかったことです。次のコードを使用しました。

次に、最初にデータベースからエンティティを取得し、コンテキストにアタッチし、MapperのMapメソッドを呼び出してから、SaveChangesを呼び出す必要があると考えました。ここで私がしたこと:

ここで、VideoエンティティのEntityKeyプロパティによって使用されるため、プロパティVideoIdの変更が許可されないというEFの問題が発生します。素晴らしい。DTOからEFエンティティにマッピングするときに、EntityKeyプロパティが値を取得するようにマッピングを設定しました。ここで、そのマッピングルールに例外を設ける方法が必要ですが、どこから始めればよいかわかりません。このメソッドでまったく新しいマッピングルールを作成し、EntityKeyとVideoIdのプロパティを無視するように設定できると思いますが、それはかなりお粗末なようです。さらに、この時点で作成されたマッピングが固執するかどうかはわかりません。DTOがエンティティのEntityKeyに値をマップできるようにする初期設定を無効にすると、まったく異なる方法で逆効果になります。

誰かもっと良いアイデアがありますか?

0 投票する
3 に答える
2509 参照

c# - Why does AutoMapper have an IValueFormatter when it has a seemingly much more powerful ValueResolver?

It looks like an IValueFormatter takes a value of type object and returns a value of type string, while a ValueResolver<TSource, TDestination> takes a value of any type and returns a value of any type. So, it's more flexible. There is also the matter that, with a ValueResolver, you never need to cast the source to a particular type--you define it explicitly in your class definition.

Given this, why use IValueFormatter? Does it do anything that can't be done with ValueResolver? Am I misunderstanding how it works?

0 投票する
2 に答える
42296 参照

c# - Automapper でプロファイルを使用して、同じタイプを異なるロジックでマッピングする

ASP.NET MVC Web サイトで AutoMapper を使用して、データベース オブジェクトを ViewModel オブジェクトにマップしています。複数のプロファイルを使用して同じ型をマップしようとしていますが、別のロジックを使用しています。Matt のブログ投稿を読んで、そうしようと思いました。

本当に重要な部分は、AutoMapper 構成プロファイルです。プロファイルを使用して構成をグループ化できます。あるプロファイルでは日付をある方法でフォーマットし、別のプロファイルでは別の方法で日付をフォーマットすることがあります。ここでは、プロファイルを 1 つだけ使用しています。

そこで、1 つのケースのプロファイルを作成しました。

そして別のケースのための別のもの:

Mapper.Map<>()ただし、プロファイルを指定するメソッドのオーバーロードが見つかりません。私もConfiguration運が悪いのでオブジェクトを見ました。
最後に登録されたプロファイルが常に優先されます。

この目的でプロファイルを使用する方法はありますか?