Entity Framework を使用してデータベース スキーマを作成し、コードを生成しました。DaysOff テーブルに子レコードを持つ Employee というテーブルがあります。DaysOff には Employee への外部キーがあり、モデルには 1 to * の関連付けがあります。Employee テーブルで LINQ クエリを実行し、Domain.Employee オブジェクトに DaysOff が設定されると予想しましたが、DaysOff は null です。オブジェクトをドリルダウンすると、「employee.DaysOff.Count が System.ObjectDisposedException 型の例外をスローしました」と表示されます。子レコードが入力されると考えるのは間違っていますか? どうすればいいですか?従業員を取得するために呼び出すメソッドは次のとおりです。
public static Domain.Employee SelectEmployee(int employeeId)
{
using (var db = new EmployeeEntities())
{
Domain.Employee emp = (from e in db.Employees
where e.EmployeeId == employeeId
select e
).FirstOrDefault();
return emp;
}
}
編集:以下の受け入れられた回答とコメント(すべて賛成票)の組み合わせは、これを解決するのに役立ちました(イェーイ!):
public static Domain.Employee SelectEmployee(int employeeId)
{
using (var db = new EmployeeEntities())
{
Domain.Employee emp = (from e in db.Employees.Include("DaysOff")
where e.EmployeeId == employeeId
select e).FirstOrDefault();
return emp;
}
}