指定的类型成员'注意' LINQ to Entities不支持

时间:2014-12-12 16:45:13

标签: c# linq linq-to-entities

我有一个班级学生(下面是伪代码):

public class Student {
    public int StudentId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address { get; set; }
}

部分类(下面的伪代码):

public partial class Student {
    public string Notes { get; set; }
    public string Instructions { get; set; }
}

报名课程:

public class Enrollment {
    public int EnrollmentId { get; set; }
    public string CourseName { get; set; }
}

LINQ:

var student = dataContext.Student;
var studentEnrollments = student.Join(
                             dataContext.Enrollment,
                             s => s.EnrollmentId,
                             e => e.EnrollmentId,
                             (s, e) => new
                             {
                                 id = s.StudentId,
                                 name = s.FirstName,
                                 course = e.CourseName
                             });

现在当我写一个链接语句,并且我想通过Notes或Instructions命令时,我收到错误:

  

LINQ to Entities不支持指定的类型成员'Notes'。

现在Notes和Instructions不是数据库中Student表中的列。是什么引发了这个例外?如果需要,我如何根据这两个字段,Notes和Exceptions进行排序?

1 个答案:

答案 0 :(得分:1)

据推测,它正试图将您的LINQ代码转换为SQL。对于这两个字段,它不能这样做,因为它们不是数据库字段,因此是错误。

尝试执行其余查询,然后在其上调用ToList()(强制执行SQL部分),然后然后在要排序的非数据库字段上调用OrderBy。