以下は、コードファーストエンティティフレームワーク(DbContext)を使用してデータベーステーブルを制御する2つのクラスです。遅延読み込みがEntityFrameworkコアで機能しない
public class Employee
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string EmployeeName { get; set; }
public int DepartmentId { get; set; }
public Department Department { get; set; }
}
-
public class Department
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string DepartmentName { get; set; }
}
私は部門ためのナビゲーションプロパティ下の行を持つ従業員を取得した場合はnullです:
var employees = _context.Employees.ToList();
しかし、私は最初に別々に移入場合このような部門との変数...
var departments = _context.Departments.ToList();
var employees = _context.Employees.ToList();
... 従業員の各従業員にDepartmentオブジェクトが含まれています。
私の質問: ナビゲーションプロパティに入力するのがベストプラクティスですか?私は、Entity Frameworkがこれをデフォルトで行っており、ToList()メソッドが遅延読み込みを処理すると想像していました。
**通知**のプロパティで**のナビゲーション**のプロパティを意味する場合は、EF *遅延読み込み*、* eager loading *および* explicit loading *を検索して、 )。 –
はい、私はナビゲーションプロパティを参照していました。私はその問題を訂正します。レイジー/ eagerローディングについて:ToList()メソッドがデータを読み込むべきではありませんか? – Sparked
このデータだけをロードします。 ** Employee.Department'のような**関連する**データではありません。 https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx –