1

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; }
}
4

0 に答える 0