問題タブ [valueinjecter]
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、Valuinjector、手動マッピングのどちらが速いですか? それぞれどの程度速いですか?
私のDAL(ORMなど)にこのオブジェクトがあるとします
そして、私はこのようなViewModelを持っています
その場合、オブジェクトを平らにする必要があります。これは、Automapper や ValueInjector などのツールを使用して行うことも、手動で行うこともできます。処理するクラスが多数ある場合、これは面倒な作業ですが、3 つのアプローチすべての間にパフォーマンスと開発者の効率のトレードオフがあるようです。
Automapper 、 Valueinjector、手動マッピングをいつ使用するかについてのガイダンスを探しています。手動マッピングが最速だと確信していますが、どれくらいですか?
一部のシナリオは他のシナリオよりもはるかに遅い/速いですか (例: 平坦化など)?
レイヤー間でオブジェクトをマッピングするためのハイブリッド アプローチを行うことは理にかなっていますか?
私が尋ねる理由は、emitmapper と呼ばれる Codeplex プロジェクトが automapper のパフォーマンスの問題に対処するために作成されたためです。automapper が大きなクラスをマップするのに最大 .5ms かかる可能性があるというコメントを見たのを覚えています。(参照が必要)
また、90 ミリ秒以上ではなく 70 ミリ秒以内に読み込まれると、ユーザーがサイトにとどまる可能性が高くなるという記事を見たことも覚えています。(私もこのリンクを探しています)。オートマッパーがページ読み込み時間のほとんどをネットワーク遅延と合わせて消費している場合、オートマッパーを使用せずに大量のページに手動クラスを作成し、ハイブリッド アプローチを使用する可能性があると考えています。
結論: 私は自分でテストを実行しますが、再利用可能なガイドラインとして使用できる正確な結果を作成するには、.NET の内部について十分に知りません。
asp.net-mvc-3 - ValueInjector がビュー モデルから ID をマッピングしない
ビュー モデルからエンティティ フレームワーク モデルにデータを挿入するためにValueInjecterを使用していますが、文字列などの ID 以外の場合はうまく機能します。何らかの理由で、ビューの選択リストから ID をマッピングしていません。一度マッピングすると、null として表示されます。理由はありますか?
モデルを見る
エンティティ フレームワーク モデル プロパティ
wcf - タイプとは異なり、omu.valueinjecter ディープ クローン
valueinjecter や AutoMapper の単純な概念が欠けていると思いますが、親の dto.Entity を biz.Entity にディープ クローンし、すべての子を含めるにはどうすればよいですか?
たとえば、biz.person.InjectFrom(dto.person)
. dto.person.AddressList コレクションを biz.person.AddressList コレクションにコピーしたいのですが、型dto.Address
とbiz.Address
は異なりますが、プロパティ名は同じです。
私の考えでは、Parent プロパティ名のスペルが同じ場合、たとえば AddressList の場合、2 つの基になるオブジェクトのタイプが異なっていても問題にはなりません。int、string などの同じ名前の単純型は引き続きコピーされます。
ありがとうございました
asp.net-mvc - ValueInjecter にはこれらのオートマッパー機能がありますか?
私は現在自動マッパーを使用しています。これは良いツールだと思いますが、ビューモデルからドメインへの状況を処理できないのが好きではありません。自動マッピングに入って、それぞれをマッピングしなければならないのはちょっと残念です。
私は周りを見回して、valueinjecter とそれがこれをどのように処理できるかについて読んでいます。オートマッパーが持っているこれらの機能を実行できるのでしょうか?
- リゾルバやフォーマッタのようなものを作ることはできますか?
- 値を組み合わせることができますか。たとえば、クライアント側には日時がありますが、2 つの異なるテキストボックスに分かれています (1 つにはタイムピッカーがあり、もう 1 つには日付ピッカーがあります)。もちろん、データベースでは 1 つのフィールドとして格納されます。
したがって、私のドメイン (後で nhibernate で使用されるもの) には、DateTime DateChoosen があります。私のビューモデルでは、文字列の日付、文字列の時刻があります。
現在、automapper には、両方のビュー モデル値を取得して DateTime に変換し、それをドメインにマップするリゾルバー (または覚えていないフォーマッター) があります。
valueinjecter でこのようなことはできますか?
私も周りを見回して、 ValueInjecter を使用したこの Automapper シミュレーションを見つけました。これにすべてのオートマッパー機能があるのか 、それとも構文がオートマッパーのように見えるだけなのか疑問に思っています。
実際にオートマッパーも使用している場合、最新バージョンを使用し続けているかどうかは誰にもわかりませんか?
asp.net-mvc - ViewModelをドメインにマッピングするValueInjecter
私はvalueinjecterで遊んでいて、ビューモデルにビューモデルのコレクションがある場合にドメインに対してビューモデルをどのように行うのか疑問に思っていますか?
私がこのドメインを持っていると言う
今、私はどのように注射をしますか?これらをvalueinjectorで手動でマッピングする必要がありますか?
編集
遊んだ後、シミュレーターを動作させました。しかし、私のものはテストのものとは異なります
IListであることを指定する必要があります。そうしないと、オーバーライドされたメソッドに入らないように見えます。
architecture - ValueInjecter アーキテクチャのアドバイス
値インジェクター、オブジェクト全体へのオブジェクトマッピングの実際の世界は初めてです。現時点では、valueinjecter が優れた選択肢の 1 つであるように思われます。この種のオブジェクトをマッピングする最良の方法は何だろうと思っています
基本的に私が欲しいのは、ビューモデルからのマップ値です
私のドメインエンティティに
私はこのコードを試してみましたが、動作しますが、それが最善の方法かどうかはわかりません
そして、valueinjecter のようなオブジェクトからオブジェクトへのマッピング フレームワークは、システム アーキテクチャのどこに適合するのでしょうか? オブジェクト マッピングの単体テストを作成することを考えています。
asp.net-mvc-3 - InjectFrom 使用時にソースの値を保持する方法
ドメイン オブジェクトに値を注入することで、いくつかのプロパティの値を保持します。
例:
ドメインモデル
モデルを見る
サンプル
.net - .NETオブジェクトマッピング、オブジェクトのグループ化
私がそのようなオブジェクトのリストを持っているとしましょう:
GroupNameに基づいてグループ化することにより、それらを次のオブジェクトにマップしたいと思います。
Automapper、Value Injector、またはその他のオブジェクトマッピングユーティリティを使用してこれを行う簡単な方法はありますか?
entity-framework - EntityFrameworkの分離オブジェクトのマージ
WCFサービスでEntityFrameworkを使用しているシナリオがあり、コードファーストを介してデータベースにマップされたタイプの追跡されていないインスタンスで変更が発生します(インスタンスのオブジェクトツリー全体で重要な更新と削除) )。追跡されていないインスタンスをコンテキストにアタッチしようとすると、EFはルートオブジェクトの単純な値型への変更のみを認識します。
このシナリオのエレガントなソリューションを知っている人はいますか?汎用リポジトリを使用し、すべてのオブジェクトの「アタッチ/デタッチ」状態を管理するインスタンスのオブジェクトツリー全体を実行する必要がないようにすることで、これを行う方法を探しています。コンテキストが変更を取得するために、ValueInjecterまたはAutoMapperを使用して、完全にハイドレイトされ追跡された「古い」状態のインスタンスで変更を実行することを検討しました。また、Nhibernateはこの状況をどのように処理しますか?
ご入力いただきありがとうございます!
更新(2012年7月31日): 一般的に入力されたキーを処理するようにコードを更新し、EFプロキシでいくつかの入力の問題が発生しました。また、IEntityタイプを処理するときにいくつかのヘルパー拡張機能を追加しました。この実装は完璧ではありませんが、非常に機能的です。
更新(2012年3月13日): EFでのよりクリーンなマージのための機能リクエストを追加しました。リクエストは次の場所にあります: http ://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/2679160-better-merging-change-tracking
更新(2012年3月12日): 以下にソリューションを投稿しました。FubuCore、ValueInjecterを使用し、エンティティを2つのインターフェイス(再帰クラスの場合はIEntityまたはIRecursiveEntity )のいずれかでマークする必要があります。このソリューションは、再帰的な自己リンクエンティティを処理します。
また、EFが公開するIDbSetへの参照を取得できる汎用リポジトリ(Repository)を参照しています。これは、他の一般的なリポジトリまたは特定のリポジトリに置き換えることができます。最後に、IEntityインターフェイスはint?を使用します。id。ただし、必要に応じて定義できます(Guid / Guid?)。ソリューション自体は、私が望むほど洗練されていませんが、物理的なWCFサービスの境界の背後にある場合は、はるかに洗練されたデータアクセスコードが可能になります。
asp.net-mvc-3 - Value Injecter はコレクション プロパティをマップしますか?
EntityFramework オブジェクトのコレクションをビュー モデルのコレクションにマップしようとしています。
レポート リストの下のコードを使用すると、マップされません。私は何を間違っていますか?