Code-First で EntityFramework 5.0 を使用しています。次のような POCO クラス Foo があります。
public class Bar
{
public int FooID { get; set; }
public virtual Foo Foo { get; set; }
public int OtherFooID { get; set; }
public virtual Foo OtherFoo { get; set; }
}
私の DbContext では、遅延読み込みがオンになっています。コンテキストから Foo をロードすると、FooID を外部キーとして使用して、プロパティ「Foo」が遅延ロードされます。ただし、どのように試しても「OtherFoo」はロードされません。
Foo f = bar.Foo; // A proxy type, which loads in the data from the DB correctly
Foo f = bar.OtherFoo; // is null, not lazily loaded
Foo f = context.Bars.Include("OtherFoo").First(...).OtherFoo; // Still null
(重要な場合、UserProfile テーブルがあり、モデル オブジェクトには CreatedByUser フィールドと LastModifiedByUser フィールドがありますが、いずれかの名前とそれに関連付けられている *ID フィールドを「User」に変更しない限り、どちらも機能しません)
これらのフィールドに貼り付けてエンティティにロード方法を伝えることができる属性はありますか、それともオーバーライドした場合に DbContext.OnModelBuilding メソッドで設定できるものはありますか?