2012-01-11 12 views
0

私はエンティティの読み込みに遅延があり、エンティティのリストを取得するための初期呼び出しを行うとSystem.Data.Entity.DynamicProxiesが表示されます。タイプ。どちらがうまいですか、私のエンティティは私のDTOにうまくマッピングされます。私が抱えている問題は、私のコンテキストに新しいアイテムを追加すると、コンテキストではなくデータベースから引き出されているということです。したがって、リストはSystem.Data.Entity.DynamicProxiesタイプで取り戻され、新しいアイテムは実際のオブジェクトタイプです。だから、Automapperは、Entity Framework 4.1のコンテキストで新たに追加されたエンティティをマッピングしていません

、例えば私はこのようなリストを持っていることがあります。

System.Data.Entity.DynamicProxies.Contact... 
System.Data.Entity.DynamicProxies.Contact... 
System.Data.Entity.DynamicProxies.Contact... 
MyNameSpace.Contact 

を私はカスタム型コンバータを作成し、DynamicProxyタイプはソース値を持っていますが、MyNameSpace.Contactはソースを持っていないことに気づきました値。だから、私のタイプコンバータでマッピングされていません。

答えて

0

コンストラクタを使用せずにエンティティを作成するときは、ObjectSet/DbSetでCreateObject/Createメソッドを呼び出すことができます。

var newContact = context.Contacts.Create(); 
context.Contacts.Add(newContact); 

返されるオブジェクトは、遅延読み込みをサポートするプロキシです。

+0

私のアーキテクチャのために私の状況で本当に私を助けない。私はリポジトリとUnit Of Workを持っており、エンティティを作成する方法は異なっています。 – DDiVita

+0

私はこれを試して、それは動作しませんでした。 – DDiVita

+0

@DDiVita残念なことに、遅延ロード機能を得るために、新しいエンティティを 'ObjectSet/DbSet'に追加する必要があります。私の答えを更新しました。 – Eranga

関連する問題