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

c# - Entity Framework + AutoMapper (Entity to DTO および DTO to Entity )

AutoMapper で EF を使用すると問題が発生します。=/

例えば ​​:

関連する 2 つのエンティティ ( Customers と Orders ) があり、それらは DTO クラスです。

p>

私は何か間違ったことをしていますか?

前もって感謝します !

0 投票する
19 に答える
91835 参照

.net - AutoMapper:「残りを無視する」?

明示的にマップされているプロパティを除くすべてのプロパティを無視するようにAutoMapperに指示する方法はありますか?

外部から変更される可能性のある外部DTOクラスがあり、新しいプロパティを追加すると、それらを自分のオブジェクトにマップしようとすると機能が損なわれるため(例外が発生するため)、各プロパティを明示的に無視するように指定することは避けたいと思います。

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

asp.net-mvc - AutoMapper はドメイン モデルを平坦化しますが、逆のことをしますか? そうでない場合、何をしますか?

ここで以前の質問の 1 つに回答があったため、AutoMapper について調べています。

AutoMapper は複雑なドメイン モデルを平坦化すると書いてありますが、逆のことをするものが必要です。ビュー モデル (フラット化されたドメイン モデル) を複雑なドメイン モデルに接続して、ビュー モデルをドメイン モデルにすばやく変換できるようにする必要があります。

ビュー モデルを取得して複雑なドメイン モデルにする AutoMapper に似たものはありますか?

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

inversion-of-control - Unityでこれを行うにはどうすればよいですか?

Jimmy Bogartが、IoCコンテナでのAutomapperの使用に関する記事を掲載しています。彼はStructureMapを使用した例を持っていますが、私はUnityを使用しており、InjectionConstructorを適切に使用する方法がわかりません。

以下は記事からのコードであり、それは私の貧弱な試みです。誰かがこれを正しく行う方法を教えてもらえますか?

私の試み:

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

entity-framework - AutoMapper エラーを解決するには? (スタックオーバーフロー例外!)

次のクラスにAutoMapper + EF (エンティティ => POCO) を使用しています。

このクラスはそれ自体 (Parent / Children) と関係があるため、AutoMapper はおかしくなり、Stackoverflow 例外をスローしました。この問題を経験したことがありますか?

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

entity-framework - AutoMapperはEF関係を適切にマッピングしていますか?

Entity Framework+AutoMapperを使用してEntityObjectsをPOCOに変換しています。

EFの関係はを使用しますEntityCollection<T>。POCOの関係はを使用しますICollection<T>。なのでEntityCollection<T> : ICollection<T>、キャストしやすいと思いました。

ただし、AutoMapperがEFEntityCollection<T>をPOCOにキャストしようとすると、それをにキャストしようとしIListます。コレクションを検出するたびにキャストします。EntityCollectionを実装していないため、IListAutoMapperによってすべての関係が期待どおりにマッピングされておらず、キャスト操作を実行しようとするとエラーがスローされます。

皆さんは以前にこの問題を見たことがありますか?

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

c# - AutoMapper/EF がリレーションシップではなく新しいアイテムを追加するのはなぜですか?

テストベースにこのテストがあります:

それが何をしているのか:

  • 新しいユーザーをベースに挿入します。
  • ユーザー関係を使用して、新しい領域をベースに挿入します。

実際に何が起こるか:

  • 新しいユーザーが挿入されます。
  • 新しい領域が挿入されます。
  • 新しいユーザーがエリア関係で再度挿入されます。

何が起こっている可能性がありますか?

詳しくは:

  • Area と User は実際には EntityObject ではありません。AutoMapper を使用して DTO/Entity をマッピングしていますが、問題はこのロジックにあると思います。ある時点で、List と EntityCollection の間でマッピングを行う必要があります。新しい EntityCollection を作成し、EntityCollection.Add メソッドを使用して、このコレクションに UserEntity に変換された User を配置します。新しいエンティティを作成しないためには Attach を使用する必要があると思いますが、適切なバインドなしで EntityCollection から呼び出された場合、このメソッドは機能しません。

それより賢い何か、またはこの問題を解決するための回避策を提案しますか? プロジェクト レイヤー (Web -> ビジネス -> データ -> EF) が本当に必要です。モジュール性の理由から、EF と直接連携する asp.net はここでは実行できません。

編集

AutoMapper を使用してこの仕事を行うという考えをあきらめています =/ 私は多くのエンティティを持っておらず、機能させるためにこのライブラリで行う必要がある変更にはいくらかの努力が必要です。それは些細なことではありませんする。自分でマッピングを行う方が良いです。

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

asp.net-mvc - ビューモデルにドメインモデルほど多くのフィールドがない場合、MVC で値を無視/永続化するにはどうすればよいですか?

fluentNhibernate と Asp.net MVC を使用しているサイトがあります。ユーザーがそのレコード (オブジェクト) の 10 個のプロパティのうち 8 個を編集できるようにする編集ビューがあります。フォームを送信してモデルがバインドされると、編集できない 2 つのフィールドが、プロパティのタイプに応じて空の文字列またはデフォルトの DateTime 値としてビューモデルに返されます。

ビューモデルをドメイン エンティティにマップするために AutoMapper も使用しているため、データベースからオブジェクトの新しいコピーを読み込んで、不足している 2 つのプロパティを手動で設定することはできません。編集したくないフィールドを保持する最良の方法は何ですか?

機能する 1 つの方法は、ビューの非表示の入力フィールドに値を保持することです。それは機能しますが、気分が悪くなります。おすすめを教えてください。AutoMapper でこの目的の機能を構成する方法はありますか?

更新: わかりましたので、フィールドを無視しようとしているわけではないと思います.nullまたは空の文字列値を保持しないようにしています。AutoMapper のフィールドを無視すると、それが行われます。リポジトリに保存する前にそれらをマップしようとすると、それらは無視され、null になります。

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

c# - Automapper (.net c#) を使用して、linq2sql クラスで使用するために Src にない変数にマップしますか?

私は最近オートマッパーをかなりうまく使用していますが、DestをSrcで使用できない変数にマッピングする際に小さな問題に遭遇しました....例はそれをよりよく説明しています..基本的に私はdestからsrcに指示..すべてうまくいきますが、宛先を、ORDERの一部ではないローカル変数であるreservationNumberという名前の変数にマップする必要があります...誰もがこれを行う方法を知っていますか??

予約は私のlinq2sqlクラスであるため、オートマッパーを使用してlinq2sqlで使用するために注文から予約にマップしています。

小さな例ですが、ご意見をいただければ幸いです。

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

c# - DTO (linq2sql) と Class オブジェクトの間の混乱!

私は linq2sql と linq DTO (linq2sql によって作成されたクラス) の操作に成功しています ....

私は混乱しています。古いアプリケーションを更新するタスクがあり、DTO が本来あるべき方法で使用されることがわかります....日付を転送する

私はリポジトリ パターンを使用しているので、linq2sql dtos を介してリポジトリからサービスにデータを渡しています...サービス層に入ったら (これは基本的に私のビジネス ロジックです)、クラス オブジェクトを渡す必要があります。

これらのクラス オブジェクトは、基本的に dtos のミラー イメージ (多かれ少なかれ) です。いくつかの場所でいくつかの変更がありますが、一般的には同じです..

ということで、本題に戻ります!-- リポジトリからサービス層にデータを転送するためだけに dtos を使用するのは、この良い方法ですか...そしてサービス層 (ビジネス ロジック) に入ったら、すべての dtos をクラス オブジェクト カウンター パーツにマッピングする必要があります (もちろん automapper を使用して! !)

私の他の代替手段は、クラスオブジェクトのようなDTOSを引き続き使用し、メソッドからメソッドへ、および戻り値の型などとして渡すことですが、これは悪い習慣だと感じており、どのメソッドを適用すべきか疑問に思っていますか?

どんな助けでも本当に感謝しています

ありがとう