問題タブ [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# - AutoMapper は大文字と小文字を区別しますか?
オブジェクトa
に「Id」という名前のプロパティがあり、オブジェクトb
に「ID」という名前のプロパティがある場合、AutoMapper は 2 つのプロパティを (.ForMember(...)
呼び出しを行わずに) 正しくマップしますか?
c# - リスト間のAutoMapper自動リスト変換をオフにするにはどうすればよいですかおよびEntitySet?
AutoMapper を使用して、Linq-To-SQL で生成されたエンティティを DTO にマッピングしています。
最初に単体テストを作成したとき、特定のマップを (静的構成クラスを介して) セットアップして、1 つのタイプの EntitySet を汎用の List に (およびその逆に) 変換しました。
リストの変換を削除すると (AutoMapper がこれらを自動的に変換することを理解すると)、単体テストは引き続き機能しましたが、クロールが遅くなりました。非常に遅く、各テストを実行するのに文字通り 1 分かかりました。
リスト マッピングを再度追加した後、単体テストは通常のパフォーマンス速度に戻りました。
リストの変換をマップする必要があるように、リストの自動変換をオフにする方法はありますか? Map を含めなかった場合に AutoMapperException をスローするようにしたいと思います。これらのパフォーマンスの問題を回避したいと思います。
さらに悪いことに、DTO に基づいてマッピング構成クラスを自動的に作成するための簡単なコード生成テンプレートを作成することになるかもしれません。そうすれば、私は何も見逃すことはありません。
ありがとう。
c# - AppDomainごとに1回AutoMapperを構成する方法
ドメインモデル、MVC Webアプリケーション、および単体テスト用のアセンブリを使用した現在のプロジェクト。すべてのアセンブリが同じ構成を参照するようにAutoMapper構成を設定するにはどうすればよいですか?
WebアプリのGlobal.asaxにアイテムを配置できると思いますが、単体テストでそれをどのように使用できますか?また、構成がGlobal.asaxにある場合、ドメインモデルはマップを取得しますか?
どうもありがとう、
KevDog。
c# - AutoMapper-宛先文字列をnullに設定すると、実際にはstring.Emptyになります
次のマッピングを使用します。
SomeStringProperty
nullではなく空の文字列になりました(私が期待するように)
これはバグですか?どうすれば実際にnullにすることができますか?
nullになると思いopt.Ignore()
ますが、実際には次のような条件付きnullを実行したいので、上記の簡略化されたバグ(?)がこれを防いでいます。
vb.net - AutoMapper を使用して DAL プロパティを BLL プロパティにマップする際の問題
Country テーブル (CountryCode、CountryName など) のフィールドのプロパティを含む BLL クラスがあります。また、同じ名前のフィールドを持つ DAL クラス (SubSonic 2.2 で作成) への参照であるプロパティ ioDAL もあります。
データベース (SQL Server 2005 FWIW) を呼び出して DAL プロパティを設定する DAL の FetchById() メソッドを呼び出す LoadRecord() メソッドがあります。
次に、対応する DAL から各 BLL プロパティを設定するコードを記述するのではなく、AutoMapper (CodePlex から) を使用します。行は次のようなものにする必要があると思います
しかし、これにより、「型の値 (DAL クラス/名前空間の命名) を 'System.Type' に変換できません」および「型の値 (BLL クラス/名前空間の命名) を 'System.Type' に変換できません」というエラーが発生します。
この呼び出しがどうあるべきかについて、誰かが私にガイドを教えてもらえますか? (VB.NET VS2005)
2010 年 1 月 13 日編集 - Jimmy から、さらにコードを表示するように依頼されました。
mapping - Automapper - ネストされたエンティティ
子関係を持つエンティティを更新または作成しています。たとえば、集約ルートは Product (ProductId、Title) で、0 個以上の ProductSuppliers (ProductSupplierId、SuppliedAtPrice、SupplierInfoId) があり、DTO は同様の構造を表します (すべての情報)。十分に単純です。
ProductDTO と ProductSupplierDTO の単純なマップを作成しましたが、新しいエンティティを対象としていると思います。
ただし、DTO を処理するときに、既存のエンティティを更新している可能性があるため、次のようにします。
製品に存在するプリミティブ型の場合、ORM は値がダーティかどうかを認識するので問題ありません。ただし、Automapper で Product.Suppliers を新しいセットに置き換えるだけではいけません。何らかのロジックをどこかにプラグインして、product.Suppliers を反復処理し、エンティティが既に存在するかどうかを確認して更新するか、新しいエンティティ ProductSupplier を作成する必要があります。は値オブジェクトではありません。Id、ProductSupplierId があります。
マッピング内でこれをプラグインする場所が見つかりません。
助言がありますか?
asp.net-mvc - フォーム投稿シナリオと MVC での複雑なモデルの更新
Automapper を使用してドメイン オブジェクト (モデル) をビュー モデルにマップする方法について多くの人が書いていますが、これは非常に興味深く有用だと思いますが、私の質問はその反対の方法についてです。このプロセスの複雑さと、Automapper がそのシナリオで機能しない理由は理解していますが、特に更新時に、フォームの投稿で多くのことをしなければなりません。
モデルがあり、それをビュー モデルにマップしてから、ユーザーにフォームを提示します。次に、フォームが投稿され、モデルが非常に複雑になる可能性があるため、カスタム ModelBinders を使用して応答を処理し、直接永続化されない新しいモデルを構築します。代わりに、元のモデルを DB から読み込み、メソッドを呼び出して、投稿された元から何も壊さずに更新します。しかし、これは繰り返しになり、より良いアプローチがあるかもしれません。
私が見た例は非常にモデルが限定されていて素朴ですが、私たちのアプリケーションでは、このような 50 以上のフォーム投稿シナリオがあり、成長している可能性があります。
c# - AutoMapperを使用したコレクションのマッピング
ICollection
配列をタイプのにマップしようとしています<T>.
基本的に私はできるようになりたいです:
どこY
にありますかCollection<T>
何か案は?
.net - オートマッパー マッピング
次のようなプロパティ名でオブジェクトをマップしようとしています:
各プロパティを別のプロパティに個別にマップするよりも、これを行うためのより良い方法はありますか? 唯一の違いは下線です。
automapper - オートマッパー フォーマッターが機能しない
Automapper 構成にフォーマッターを追加して、すべてのDateTime?
フィールドのスタイルを設定しようとしています。フォーマッターをグローバルに追加しようとしました:
そして、特定のマッピング自体について:
しかし、どちらも機能していないようです-常に通常の形式で日付を出力します。参考までに、私が使用している ViewModel と残りの構成を次に示します。
PostViewModel:
私は何を間違っていますか?
ありがとう!