Entity Framework の話に戻ります。EF1 では、FK (例: ManufacturerId) が依存オブジェクト (例: Product) で公開されず、ナビゲーション プロパティ (例: Manufacturer) でのみ動作することを意味する、独立した関連付けのみがありました。EF4 では、新しいタイプのアソシエーションが導入されました。FK がモデルに表示され、それらを直接操作できる外部キー アソシエーションです。
したがって、以下はまだ完全に有効なモデルですが、一種の EF1 スタイル (つまり、独立した関連付け) です。
public class Product {
public int ID { get; set; }
public virtual Manufacturer Manufacturer { get; set; }
}
とはいえ、オブジェクト モデルを操作するための究極の柔軟性が得られるため、常にオブジェクトに外部キーを含めることをお勧めします。
public class Product {
public int ID { get; set; }
public int ManufacturerId { get; set; }
public virtual Manufacturer Manufacturer { get; set; }
}
興味深い点は、慣例により、EF コードは最初にナビゲーション プロパティManufacturerId
の FK であると認識し、Manufacturer
それに基づいてデータベース内の関係を作成することです。
ところで、遅延読み込みとは何の関係もありません。モデルで行ったように、ナビゲーション プロパティをviualとしてマークする限り、遅延読み込みは FK の有無にかかわらず機能します。