Возврат к объединенной таблице - PullRequest
2 голосов
/ 15 ноября 2011

Я набрал этот запрос linq для контекста моего домена, но почему он не смог получить данные идентификатора студента, совпадающего с таблицей, в tblaptmt?

    public IQueryable<StudentViewAppointment> StudentViewAppointments(string StuId)
    {
        //IQueryable<StudentViewAppointment> studentViewAppointments =
        //from aptmt in this.ObjectContext.tblaptmts join ch in
        //aptmt.consultationID equals ch.consultationID where aptmt.studentID == StuId
        //select aptmt;
        //return studentViewAppointments as IQueryable<StudentViewAppointment>;

        return ObjectContext.tblaptmts.Where(a => a.studentID == StuId).Join
        (ObjectContext.tblConsultationHours, a => a.consultationID, 
        ch => ch.consultationID, (a, ch) =>
            new StudentViewAppointment()
                {
                    AppointmentId = a.aptmtID,
                    Apremark = a.apremark,
                    APstatus = a.apstatus,
                    APsubject = a.apsubject,
                    ConsultationId = a.consultationID,
                    Day = ch.cday,
                    StartTime = (DateTime)ch.cstartTime,
                    EndTime = (DateTime)ch.cendTime,
                    LectureId = ch.lecturerID,
                    StudentId = a.studentID
                });
    }

Класс обслуживания домена.cs

public partial class StudentViewAppointment
{
    [Key]
    public int AppointmentId { get; set; }
    public string Apremark { get; set; }
    public string APsubject { get; set; }
    public string APstatus { get; set; }
    public int ConsultationId { get; set; }
    public string StudentId { get; set; }
    public string Venue { get; set; }
    public DateTime StartTime { get; set; }
    public DateTime EndTime { get; set; }
    public string LectureId { get; set; }
    public string Day { set; get; }
}

Класс обслуживания домена Metadata.cs

dgSlot.ItemsSource = context.StudentViewAppointments;
context.Load(context.StudentViewAppointmentsQuery("TP123123"));

Datagrid.xaml.cs

1 Ответ

3 голосов
/ 15 ноября 2011
return (from a in ObjectContext.tblaptmts
        join ch in ObjectContext.tblConsultationHours 
             on  a.consultationID equals ch.consultationID
        where  a.studentID == StuId
        select new StudentViewAppointment() 
                  {                       
                       AppointmentId = a.aptmtID,
                       Apremark = a.apremark,
                       -----
                       -----
                  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...