ASP.NET MVC4 プロジェクトで Code First と LINQ to SQL を使用しています。以下のクエリでは、PatientView.Appointments.ScheduledBy を入力しようとしていますが、null を返しています。.Include("Appointments.ScheduledBy") を追加しようとしましたが、Appointments.ScheduledBy は引き続き null を返します。
LINQ to SQL 式を変更して ScheduledBy を設定するにはどうすればよいですか?
これが私のLINQ to SQLです(Idはアクションのパラメーターです)
var q = from p in context.Patients.Include("Appointments.ScheduledBy")
where p.Id == Id
select new PatientView
{
Patient = p,
Appointments = p.Appointments.OrderByDescending(a => a.ScheduledFor)
};
PatientView pv = q.Single();
PatientView は、ビューのビュー モデルです。Appointments プロパティは設定されますが、Appointments の ScheduledBy プロパティは null です。
public class PatientView
{
public Patient Patient { get; set; }
public IEnumerable<Appointment> Appointments { get; set; }
}
public class Patient
{
public int Id { get; set; }
public string Number { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public List<Appointment> Appointments { get; set; }
}
public class Appointment
{
public int Id { get; set; }
public Patient Patient { get; set; }
public Employee ScheduledBy { get; set; }
public DateTime ScheduledFor { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}