問題タブ [automapper-2]
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を使用してオブジェクトのプロパティを文字列にマップする
私は次のモデルを持っています:
AutoMapperを使用してName
、タイプのプロパティをビューモデルTag
の1つで文字列プロパティにマップできるようにしたいと思います。
次のコードを使用して、このマッピングを処理しようとするカスタムリゾルバーを作成しました。
次のコードを使用してマッピングしています。
アプリケーションを実行すると、次のエラーが発生します。
メンバーのカスタム構成は、タイプの最上位の個々のメンバーに対してのみサポートされます。
私は何が間違っているのですか?
c# - Automapper モデル > ViewModel マッピング例外
次のモデルとビューモデルがあります(簡潔にするために編集されています):
次の AutoMapper マッピングがあります。
次に、コントローラー メソッドの 1 つが次の処理を実行して、Adverts のリストを取得します (各 Adverts には任意の数の AdvertImages を含めることができます)。
次に、これらの広告をListAdvertViewModel
ViewModel クラスにマップしようとします
ただし、返された広告の 1 つ (「ads」変数内) にマップする画像がある場合、これは失敗します。私が得るエラーは次のとおりです。
この AdvertImage マッピングが問題を引き起こしている理由がわかりません。
asp.net-mvc - NHibernateを使用したAutomapper-マップされたオブジェクトを永続化する方法は?
FluentNHibernateとAutoMapperを使用するASP.NETMVCアプリケーションがあります。私は主にAutoMapperを使用して、モデルをViewModelsに、またはその逆にマップしています。
後者を実行するとき、ビューモデルからモデルにマッピングし直すと、これをDBから特定のインスタンスにマッピングする方法がわからないので、変更をDBにコミットするときに(NHibernateリポジトリレイヤーを使用して、サービスを介して)レイヤー)、変更は永続化されます。
例:
マッピングの一部としてアドバタイズメントに正しいキー/IDが割り当てられているにもかかわらず、DBでこのアドバタイズメントを更新するためにNHibernateセッションをコミットしようとすると、NHibernateセッションはこのアドバタイズメントインスタンスについて何も知らないためだと思います(?)変更を書き留めることはありません。
したがって、NHibernateと組み合わせてこのマッピングシナリオをどのように処理するのか疑問に思っていますか?
c# - キーを使用して Automapper の既存のリストにリストをマップする
Automapper は、あるオブジェクト タイプのリストから別のオブジェクト タイプの別のリストへのマッピングを簡単に処理しますが、ID をキーとして既存のリストにマッピングすることは可能ですか?
c# - Automapper でスタック オーバーフローを引き起こす循環参照
Automapper を使用して、NHibernate プロキシ オブジェクト (DTO) を CSLA ビジネス オブジェクトにマップしています
Fluent NHibernate を使用してマッピングを作成しています - これは正常に動作しています
私が抱えている問題はOrder
、 に のコレクションがOrderLines
あり、これらのそれぞれに への参照があることOrder
です。
と:
これらの DTO オブジェクトは、それぞれOrder
およびOrderLines
CSLA オブジェクトにマップされます。
OrderLines
のリストへの自動マッピングOrderLinesDTO
がマッピングされている場合。次に、自動マッパーは"Order"
行のプロパティをマッピングします。これは にマップされ、Order
次に に循環的にマップされOrderLine
、次に にマップOrder
されます。
Automapper がこの循環参照を回避できるかどうかは誰にもわかりませんか?
c# - AutoMapper-選択した子プロパティを保持しながらネストされたマッピング
だから私はこれを持っています。
そして、私はこれを行います。
それから私の期待は、dest.ChildProperty.OtherChildProperty
それがデータコンテキストからプルされたときの状態にまだ設定されているということです。しかし、私はこれを行うのに苦労しています。
その場合CreateMap
、「トップレベルのメンバーに解決する必要があります」という例外が発生します。
ただし、次のことを行うと、データコンテキストからプルされたnew Child {}
ものが置き換えられ、基本的にクリアされます。Child
OtherChildProperty
これをマップして、無視したい子プロパティを保持するにはどうすればよいですか?
c# - AutoMapper ネストされたオブジェクトのプロパティを Null でない場合にマップする
次のサンプル オブジェクトがあります。
次のAutoMapper構成で
そして次のNUnitテスト...
上記のテストは、AutoMapper が null を宛先オブジェクトにプッシュしているため、age をアサートすると失敗します。
AutoMapper に期待しすぎているのでしょうか、それとも重要なマップ構成ステップを見逃しているのでしょうか。
最終的な目標は、MVC アクションを介して非常に複雑なドメイン オブジェクトを受信フォーム データにバインドすることです。次に、AutoMapper を使用して、(オブジェクト グラフのすべての深さで) null 以外のプロパティのみを、マルチ ステップ フォーム全体で維持されている実際のインスタンスにマージします。
誰かが知る必要がある場合に備えて...次のマッピング構成も試しましたが、運がありません:(
ninject - Ninject と AutoMapper
Caliburn.Micro で構築された Silverlight 5.0 UI で構成される内部デモ用のコードをまとめています。
要約シナリオ: サービス プロキシ クラスからビュー モデルのリストをマップするために AutoMapper を取得しようとしています。ビュー モデルには ctor 依存関係があるため、Ninject を使用してこれを解決したいと考えています。
詳細: サービスを呼び出す親ビュー モデル (AvailableItemsViewModel) があります。次に、AutoMapper を使用して、返された DTO のリストを AvailableItemViewModel にマップします。
AvailableItemViewModel は、Caliburn の IEventAggregator への参照を受け取ります。これは、ビュー モデルがユーザー入力に基づいてイベントを発行するためです。
もう読んだ:
Ninject を使用して AutoMapper の依存関係を注入する
Ninject 2.0 で注入されるように Automapper を構成する方法は?
これらはすべてかなり似ているように見えます...だから、Bootstrapクラスで次のようになりました:
ブートストラップにブレークポイントを設定すると、Ninject が AvailableItemViewModel のインスタンスを正常に作成できることがわかります。
エラーは次のとおりです。
{System.ArgumentException: Type 'Caliburn.Proto.ViewModels.AvailableItemViewModel' には System.Linq.Expressions.Expression.New(Type type) at AutoMapper.DelegateFactory.<>c__DisplayClass1.b__0(Type t) に既定のコンストラクターがありませんTvdP.Collections.ConcurrentDictionary2.GetOrAdd(TKey key, Func
2 valueFactory) で AutoMapper.DelegateFactory.CreateCtor(Type タイプ) で AutoMapper.Mappers.ObjectCreator.CreateObject(Type タイプ) で AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.CreateObject(ResolutionContext コンテキスト) で AutoMapper.Mappers.TypeMapObjectMapperRegistry.NewObjectPropertyMapMappingStrategy.GetMappedObject( ResolutionContext コンテキスト、IMappingEngineRunner マッパー) で AutoMapper.Mappers.TypeMapObjectMapperRegistry.PropertyMapMappingStrategy.Map(ResolutionContext コンテキスト、IMappingEngineRunner マッパー) で AutoMapper.Mappers.TypeMapMapper.Map(ResolutionContext コンテキスト、IMappingEngineRunner マッパー) で AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(ResolutionContext環境)}
Ninjectは使用されていませんか?
マッピングを行うコードは次のとおりです。
私は何が欠けていますか?
(AutoMapperはver2.1.267.0、Ninjectは3.0.0.0。Ninject.Conventionsも使っています)
[更新]投稿AutoMapper with Ninject の「回避策」も有効であることに注意してください。
[更新] これを考えると: Mapper.CreateMap().ConstructUsingServiceLocator();
ConstructUsingServiceLocator() メソッドを削除すると、Kernel.Get のブレークポイント:
トリガーしません。両方が必要なようですか?
automapper - オートマッパー式は最上位メンバーに解決される必要があります
オートマッパーを使用して、ソース オブジェクトと宛先オブジェクトをマッピングしています。それらをマップしている間、以下のエラーが発生します。
式は最上位メンバーに解決される必要があります。パラメータ名: lambdaExpression
問題を解決できません。
ソース オブジェクトと宛先オブジェクトは次のとおりです。
オブジェクトでマッピングSource.Cars
する必要がありDestination.OutputData.Cars
ます。これで私を助けてもらえますか?
.net - 宛先のマップされていないフィールドが null に設定されています
2 つのオブジェクトのマッピングに Automapper を使用しています。
目的地にデフォルト値を持つフィールド VehicleModel があります。ソースにこの宛先フィールドのマッピングがありません。だから地図にしなかった。マッピングが完了すると、私のデフォルト値は宛先で null 値に設定されます。データ オブジェクトは次のようになります。
Source と OutputData の間のマッピング。
この動作を回避する方法。
前もって感謝します。サンディープ