データベースからエンティティをロードする必要があります。そのエンティティにデータベースからのほとんどすべてのリレーションを熱心に読み込む必要があります。私はInclude
を使ってみましたが、成功しませんでした。兄弟付きのEFエンティティをロードするには
var thingy = _ctx.MASTERANDCOMMANDER
.Include(x => x.RED)
.Include(x => x.RED.Select(y => y.RED_ONE))
//.Include(x => x.RED.Select(y => y.RED_TWO))
.Include(x => x.GREEN)
.Include(x => x.GREEN.Select(y => y.GREEN_ONE))
.Include(x => x.GREEN.Select(y => y.GREEN_ONE.Select(z => z.GREEN_ONE_BIG)))
//.Include(x => x.GREEN.Select(y => y.GREEN_TWO))
//.Include(x => x.GREEN.Select(y => y.GREEN_THREE))
.SingleOrDefault(x => x.ID == "someId");
私はそれらのいずれかのコメントを解除する場合は含まれ、アプリがスロー: のSystem.Exception:オラクル11.2.0.2.0はEntityFramework 6とOracle 11.2を使用した
適用をサポートしていません。ここでは、コードです.0.2.0。 EFもOracleもアップグレードできません。
GREEN_TWOなどから関係をthingyにロードするにはどうすればよいですか?
編集:表示されるすべての関係は、左から右に1対多です。例:
- RED(* 1)RED_ONE
- GREEN_ONE(1 *)GREEN_ONE_BIG
実際にはlinq構文を使用して試してみましたが動作します...しかし、空のリレーションを持つアイテムがあれば空のオブジェクトを返します。左の結合を使用する...それらはC#で醜いです –