using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EMIS.ViewModel.GraduationManage.GraduationRequirement;
using System.Linq.Expressions;
using EMIS.Entities;
using EMIS.DataLogic.Repositories;
namespace EMIS.DataLogic.GraduationManage.GraduationRequirement
{
public class CourseTypeRequirementDAL
{
public GraduationCourseTypeRequirementRepository GraduationCourseTypeRequirementRepository { get; set; }
public GrademajorRepository GrademajorRepository { get; set; }
public FacultymajorRepository FacultymajorRepository { get; set; }
public CollegeRepository CollegeRepository { get; set; }
public SchoolyearRepository SchoolyearRepository { get; set; }
///
/// 查询对应的毕业课程类型学分信息View
///
///
///
public IQueryable GetGradCourseTypeRequirementQueryable(Expression> exp)
{
var query = from gct in GraduationCourseTypeRequirementRepository.GetList(exp)
join gr in GrademajorRepository.Entities
on gct.GrademajorID equals gr.GrademajorID
join fa in FacultymajorRepository.Entities
on gr.FacultymajorID equals fa.FacultymajorID
join col in CollegeRepository.Entities
on fa.CollegeID equals col.CollegeID
join sye in SchoolyearRepository.Entities
on
new { SchoolyearID = gr.GradeID.Value, SchoolcodeID = gr.SemesterID.Value }
equals
new { SchoolyearID = sye.Years, SchoolcodeID = sye.SchoolcodeID }
into tempsyenter
from syenter in tempsyenter.DefaultIfEmpty()
select new CourseTypeRequirementView
{
GraduationCourseTypeRequirementID = gct.GraduationCourseTypeRequirementID,
GrademajorID = gct.GrademajorID,
GrademajorCode = gr.Code,
GrademajorName = gr.Name,
FacultymajorID = gr.FacultymajorID,
FacultymajorNo = fa.Code,
FacultymajorName = fa.Name,
CollegeID = fa.CollegeID,
CollegeNo = col.No,
CollegeName = col.Name,
SchoolyearID = gr.GradeID,
SchoolcodeID = gr.SemesterID,
EnteringSchoolYearID = syenter.SchoolyearID,
EnteringSchoolYearCode = syenter.Code,
GraduatingSemesterID = gr.CF_Schoolyear.SchoolyearID,
GraduatingSemesterCode = gr.CF_Schoolyear.Code,
StandardID = fa.StandardID,
EducationID = fa.EducationID,
LearningformID = fa.LearningformID,
LearnSystem = fa.LearnSystem,
CourseTypeID = gct.CourseTypeID,
TotalCredit = gct.TotalCredit,
RecordStatus = gct.RecordStatus,
CreateUserID = gct.CreateUserID,
CreateTime = gct.CreateTime,
ModifyUserID = gct.ModifyUserID,
ModifyTime = gct.ModifyTime
};
return query;
}
}
}