背景:
EF4とを使用していObjectContext
ます。複雑なオブジェクト階層の取得を最適化するために、データベースクエリを手動で実行してから、を使用ObjectContext.Translatey<T>(DataReader, entitySetName, mergeOptions.AppendOnly)
してデータ行をエンティティに変換します。ObjectContext
次に、エンティティをwithAttach
メソッドにアタッチします。これにより、エンティティ間の関係も修正されます。
問題: すべてがロードされてセットアップされた後、親エンティティから子エンティティ(たとえば、Parent.Childs.First())に移動しようとしますが、すべての子エンティティがObjectContextとEntitySetにすでに存在します。これは、parent.Childs.IsLoadedがfalseに設定されているため、EFがリレーションをロードする必要があると見なしているためと思われます。
質問: EntitySetがすでにロードされていることをEFに伝えるにはどうすればよいですか?
RelatedEnd.IsLoaded
trueに設定するためのサポートされている方法はありますか?RelatedEnd.SetIsLoaded
内部メソッドの呼び出しを台無しにしたくありません。
私はここでちょっとした質問を見つけましたが、それはDbContextに関連していて、満足のいく答えはありません;-)
マトラ