一对多 LINQ 查询 - 编译器错误

One to Many LINQ Query - compiler error

请参阅下面的 LINQ 查询:

var test = from s in db.Students
           join c in db.Courses on s.courseid equals c.id into d
           where s.name.StartsWith("Bert")
           select new Student { id=s.id,name=s.name, Course = d.Select(x => x.name) };

一名学生链接到一门课程。所以上面Course的值应该是课程的集合。但是,存在编译器错误 (System.ArguementNullException)。我做错了什么?

我可以使用 SQL,但是我是 LINQ 的新手。请从下面的数据库中查看 SQL:

***Student Class***
  public partial class Student
    {
        public int id { get; set; }
        public string name { get; set; }
        public Nullable<int> age { get; set; }
        public Nullable<int> courseid { get; set; }

        public virtual Course Course { get; set; }
    }

    Course Class

 public partial class Course
    {
        public Course()
        {
            this.Students = new HashSet<Student>();
        }

        public int id { get; set; }
        public string name { get; set; }

        public virtual ICollection<Student> Students { get; set; }
    }

您似乎只是想让您的查询也为您的学生检索 Course 导航 属性。因此,您需要做的就是 Include 它:

var students = db.Students
    .Include(s => s.Course)
    .Where(s => s.Name.StartsWith("Bert");