2016-05-06 3 views
1

私はpocoエンティティを(JSONをデシリアライズして)作成したコードを持っています。 Entity Frameworkに遅延ロードを有効にしたいので、Entity FrameworkでPOCOオブジェクトをラップして、ナビゲーションプロパティのロードを遅延させるEFプロキシを与えます。POCOエンティティ用のEF6プロキシを取得

基本的なpocoエンティティをEFプロキシから取得することに関する質問に対しては多くの回答がありましたが、それ以外の方法はありません。 pocoエンティティを指定すると、どのようにEFプロキシをラップして作成しますか?

両...

context.Set<TEntity>().Add(poco); 

と...

context.Set<TEntity>().Attach(poco); 

... POCOエンティティを返してくれPOCOのプロキシを与えるだろうどこか方法はありますか?あなたが文脈から照会されていない限り、私はあなたが遅延ロードナビゲーションプロパティはできません

context.Set<TEntity>().Where(...) 

答えて

1

...を通じてエンティティをロードする際、私はプロキシエンティティと遅延ロードを取得することができるよ

が正常に動作しています。 JSONの逆シリアル化によってエンティティをロードする場合は、明示的なロードを使用する必要があります。

//Example 
context.Entry(poco).Reference(x => x.ReferenceProperty).Load(); 
context.Entry(poco).Collection(x => x.ReferenceCollection).Load(); 

https://msdn.microsoft.com/en-us/data/jj574232.aspx

+0

私はそれのために遅延読み込みを有効にするには、いくつかの方法があったコンテキストにPOCOエンティティを追加した後に期待していました。私はこれが現在のフレームワークでは不可能かもしれないと思っています。 – Mick

+0

EF、または単一の呼び出しですべての参照プロパティを明示的にロードするための素晴らしいアイデアです。 –

関連する問題