問題タブ [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 投票する
1 に答える
2132 参照

c# - AutoMapper:多対多の関連付けをDTOにマップします(コレクションアイテムのフラット化はサポートされていますか?)

チームと従業員の間には多対多の関係があります。

これを次のDTOにマッピングしたいと思います。

したがって、TeamNameはマップする必要があるものです。

次のマッピングコードを使用します。

問題はEmployee.Teamsメンバーです。ちなみに、Teamsコレクションは熱心にロードされています。だからそれはそこにあります。

TeamsがNullの場合、NullReference例外が発生します。

チームの名前をDTOにマッピングするにはどうすればよいですか?

編集:今のところ、私はAutomapperを離れ、代わりにこの面倒なコードを使用します:

私にとって、これはペントの匂いがします...

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

c# - あるタイプのリストを別のタイプにマッピングする

オブジェクトには、BrokenRulesCollectionプロパティを持つCslaを使用しています。それをStatusMessagesプロパティを持つ自分のDTOに変換したいと思います。

独自のリゾルバーを作成しました:

そして、マッピングでは、使用するリゾルバーを通知しています。

ただし、マッピングを実行しようとすると、次のようになります。

次のエラーが発生します。

提供される値はCsla.Validation.BrokenRulesCollectionタイプですが、Favs.DomainObjects.Members.MemberRegistrationが必要です。値リゾルバーのソースタイプを変更するか、FromMemberを使用して提供されたソース値を値リゾルバーにリダイレクトします。

助言がありますか?

編集:

フォローアップとして、変換を作成しようとしましたが、それでも同じメッセージが表示されます。

そして、次のように構成します。

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

c# - BestPractice: ビューに多対多の関連付けをきれいに表示する方法は?

私は NHibernate を使用しており、従業員とチームの間に多対多の関連付けがあります。

ここで、すべての従業員をそのチーム メンバーの名前とともに表示したいと考えています。

可能性 1:

  • AutoMapper を使用して、従業員のプロパティとチームの名前を含む DTO を作成します (チームのイーガー ロード)
  • ビューに DTO を表示する

可能性 2:

  • EmployeeTeam という新しいエンティティを作成し、それを NHibernate/FluentNHibernate にマップします (このエンティティは、データベース内の従業員とチームの間のリレーショナル テーブルとして機能します)。
  • 熱心な読み込みを使用して TeamEmployee を読み込むには、Employee と Team を含めます
  • EmployeeTeam エンティティを表示する
  • EmployeeTeam メンバーを使用する (EmployeeTeam.Employee.Name、EmployeeTeam.Team.Name)

可能性 3:

  • 可能性1と2として
  • EmployeeTeam に DTO を使用する

可能性 4:

  • ICriteria API を使用する
  • AliasToBeanResultTransformer を使用します (これは使用しませんでした)

可能性 5:

  • LINQ to NHibernate を使用する
  • 私はまだ EmployeeTeam エンティティが必要だと思います (これは今のところ私のドメイン モデルにはありません)。

この問題のベスト プラクティスは何ですか?

他の提案はありますか?

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

c# - AutoMapper でコレクションにリゾルバを使用するには?

ドメイン オブジェクトの一部を ORM (LLBLGen) エンティティにマップし直したいと考えています。このために AutoMapper を使用しています。ドメイン オブジェクトにはコレクションが含まれており、AutoMapper のドキュメントには、それらについて心配する必要はなく、含まれている型についてのみ説明されています。これは常にそうではありません...

コレクションにマップしようとすると、ListSource をクリアすることは許可されていないことを示す LLBLGen エラーが発生し、関連付けられたコレクションを使用する必要があります。そのため、AutoMapperは LLBLGen コレクションListSource タイプとして使用しているように見え、LLBLGen は Clear メソッドをオーバーライドしました (使用を許可していません)。

デスティネーション コレクションは読み取り専用であるため、リゾルバーを作成してもこの問題は解決しません。完全に置き換えることはできません。

私が必要としているのは、AutoMapper がコレクションをマップする方法をカスタマイズする方法です。これは、タイプ レベルではなく、コレクション レベルです。

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

c# - Moq を使用した AutoMapper Mapper.Map 呼び出しのモック

AutoMapper で Map 関数のモック期待値を設定する最良の方法は何ですか?

IMapper インターフェイスを抽出して、そのインターフェイスの期待値を設定できるようにします。私のマッパーには依存関係があるため、それらをマッパーに渡す必要があります。

2 つの異なる依存関係の実装を使用して、マッパー クラスの 2 つのインスタンスを作成するとどうなりますか? AutoMapper マップは静的であるため、両方のマッパーが同じ依存関係インスタンスを使用すると想定しています。または、同じオブジェクトで 2 つの異なるマップをセットアップしようとすると、AutoMapper が例外をスローすることさえあります。

これを解決する最良の方法は何ですか?

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

web-services - Webサービスのオートマッパー構成をどこに配置しますか?

Web サービスには、グローバル設定 (オートマッパー構成など) を構成するための global.asax がないことを読みました。だから私の質問は:

すべての webmethod に automapper 構成を配置する必要がありますか、それともグローバルに配置できる場所はありますか?

毎晩数千回 Web サービスを呼び出すので、automapper の構成が高価な場合はさらに時間がかかるのではないかと心配しています。私は正しいですか、それとも不必要に心配しているだけですか?

Thx、ジョン

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

automapper - AutoMapper は ReadOnlyCollections をサポートしていますか?

さまざまな構成を試しましたが、機能しません。サポートされているか心配です。

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

c# - Automapper:新しいオブジェクトを作成せずにプロパティ値を更新します

自動マッパーを使用して、新しいオブジェクトを作成せずに別のオブジェクトのプロパティ値を更新するにはどうすればよいですか?

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

c# - AutoMapper を使用して「X」タイプのすべてのプロパティをマッピングする

AutoMapper を使い始めたばかりですが、これまでのところ非常に簡単で時間を節約できることがわかりました。

よくわからないことが 1 つだけあります。特定の型のすべてのプロパティを同じ方法でマップするにはどうすればよいでしょうか。

これは、通常のマッピングと同様に、ラムダを使用して単一のステートメントで AutoMapper で実行できますか?

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

asp.net - googlecodeからAutoMapperをチェックアウトするための正しいURLは何ですか?

私はジミー・ボガードによるこのプロジェクトについて言及しています:http: //www.codeplex.com/AutoMapper

コードリポジトリサイトは次のとおりです:http ://code.google.com/p/automapperhome/source/checkout

指示されたチェックアウトコマンドは次のとおりです。svncheckouthttp : //automapperhome.googlecode.com/svn/trunk/automapperhome-read-only

これは動作しません。

私はSlikSVN、Tortoise SVN、QSVN、そしておそらく私が忘れていた他のものを試しました。

クライアント:Tortoise SVN

URL:svn://automapperhome.googlecode.com/svn/trunk/ automapperhome-read-only

結果

チェックアウト'svn://automapperhome.googlecode.com/svn/trunk/ automapperhome-read-only' into'C:\ Development \ MVC \ automapper'ホストに接続できません'automapperhome.googlecode.com':接続の試行接続されたパーティが一定期間後に適切に応答しなかったために失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。


クライアント:SlikSVN

指示:

C:\ Program Files \ SlikSvn \ bin> svn checkout http://automapperhome.googlecode.com/svn/trunk/ automapperhome-read-only c:development \ automapper

結果:

svn:'http://automapperhome.googlecode.com/svn/trunk'のオプション 200 OK(http://automapperhome.googlecode.com

指示:

C:\ Program Files \ SlikSvn \ bin> svn checkout svn://automapperhome.googlecode.com/svn/trunk/ automapperhome-read-only c:development \ automapper

結果:

svn:ホストに接続できません'automapperhome.googlecode.com':接続されたパーティが一定期間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために接続の確立に失敗しました。


私は途方に暮れています。これを機能させるためにルーターで開く必要のあるデフォルトのポートはありますか?私はルーターのファイアウォールの後ろにいるだけです。どんな助けでもいただければ幸いです。ありがとう。


sliksvnに対して試行された追加コマンドで更新:

C:\ Program Files \ SlikSvn \ bin> svn checkout svn://automapperhome.googlecode.com/svn/trunk/ c:development \ automapper

svn:ホストに接続できません'automapperhome.googlecode.com':接続されたパーティが一定期間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために接続の確立に失敗しました。

C:\ Program Files \ SlikSvn \ bin> svn checkout svn://automapperhome.googlecode.com/svn/trunk/

svn:ホストに接続できません'automapperhome.googlecode.com':接続されたパーティが一定期間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために接続の確立に失敗しました。

C:\ Program Files \ SlikSvn \ bin> svn checkout svn://automapperhome.googlecode.com/svn/trunk/automapperhome-read-only c:development \ automapper

svn:ホストに接続できません'automapperhome.googlecode.com':接続されたパーティが一定期間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために接続の確立に失敗しました。

************* UPDATE3********************奇数。職場のQsvnで簡単なcheckoutコマンドを実行すると、すべてが正常に取り込まれます。自宅のマシンのセットアップに間違いなく問題がありますが、何が原因かわかりません。Fiddlerを利用して、何が起こっているのかを調べます。助けてくれてありがとう。これはおそらく私と同じくらいあなたを苛立たせていることを私は知っています。必要なときに機能しないことほど悪いことはありませんが、これを行っているのは私の側に奇妙なことがあると確信しています。