EF4.3 で使用している正規化されたデータベースがあります。
この例では、ユーザーがいます (全員がユーザーです)。一部はサブスクライバーであり、サブスクライバーは寄稿者、メンバー、または管理者のいずれかです。
そのため、ユーザーのタイプごとに、ナビゲーション プロパティを介して適切な関連付けを含めます。
したがって、Member linq ステートメントは次のようになります。
var u = r.FindBy(x => x.UserId == userId)
.Include("Subscribers")
.Include("Members")
.SingleOrDefault();
オブジェクトに関しては、すべての人がユーザーです - 順列が異なるだけです。
一部のナビゲーション プロパティが含まれていない場合に、コードでこれを処理する最善の方法を見つけようとしています。たとえば、上記の例では Contributor や Administrator を含めません。通常、user.subscriber.contributor が NULL でないことを確認できますが、代わりに、このチェックを行っても「オブジェクト コンテキストが破棄されました...」と表示されます。
これを回避するにはどうすればよいですか?