Asp.net mvc LINQ to SQL-填充集合属性的子属性

Asp.net mvc LINQ to SQL-填充集合属性的子属性,asp.net-mvc,linq-to-sql,ef-code-first,Asp.net Mvc,Linq To Sql,Ef Code First,我正在ASP.NETMVC4项目中使用代码优先和LINQtoSQL。在下面的查询中,我试图填充PatientView.Appointments.ScheduledBy,但返回null。我已尝试添加.includeAppoints.ScheduledBy,但appoints.ScheduledBy继续返回null 如何修改LINQ to SQL表达式以获得ScheduledBy填充 下面是我的LINQ to SQL Id,它是操作的参数 var q = from p in context.Pati

我正在ASP.NETMVC4项目中使用代码优先和LINQtoSQL。在下面的查询中,我试图填充PatientView.Appointments.ScheduledBy,但返回null。我已尝试添加.includeAppoints.ScheduledBy,但appoints.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是视图的视图模型。“约会”属性不会被填充,但“约会”的ScheduledBy属性为空

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

如果约会的ScheduledFor属性是不可为null的DateTime,那么它怎么可能为null呢?我认为您使用的不是LINQtoSQL,而是LINQtoEntities。Linq到Sql与代码优先或实体无关Framework@armen.shimoon-那是我的错别字。“约会”的ScheduledFor属性为空应该是“约会”的ScheduledBy属性为空,此后我编辑了该问题。谢谢。@Pawel我真的不知道哪个是LINQ to Entities或LINQ to SQL执行的,也不知道如何判断。我知道我首先使用代码创建数据库,然后使用LINQ表达式将数据从数据库中取出并输入数据库,但我不清楚LINQ wise的分界线在哪里,LINQ to SQL和LINQ to Entities之间。如果您使用的是System.data.Entity/DbContext/ObjectContext命名空间,则使用的是LINQ to Entities。