StudentsDAL.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using EMISOnline.Entities;
  6. using EMISOnline.DataLogic.Repositories;
  7. using EMISOnline.ViewModel;
  8. using System.Linq.Expressions;
  9. using EMISOnline.ViewModel.Educational;
  10. namespace EMISOnline.DataLogic.Educational
  11. {
  12. public class StudentsDAL
  13. {
  14. public StudentRepository StudentRepository { get; set; }
  15. public RecruitstudentsRepository RecruitstudentsRepository { get; set; }
  16. public StudentContactRepository StudentContactRepository { get; set; }
  17. public ClassmajorRepository ClassmajorRepository { get; set; }
  18. public UserRepository UserRepository { get; set; }
  19. public FacultymajorRepository FacultymajorRepository { get; set; }
  20. public GrademajorRepository GrademajorRepository { get; set; }
  21. public CollegeRepository CollegeRepository { get; set; }
  22. public DictionaryItemRepository DictionaryItemRepository { get; set; }
  23. public SchoolyearRepository SchoolyearRepository { get; set; }
  24. public IQueryable<StudentView> GetStudentList()
  25. {
  26. var query = from u in UserRepository.Entities
  27. join s in StudentRepository.Entities on u.UserID equals s.UserID
  28. join rs in RecruitstudentsRepository.Entities on s.UserID equals rs.UserID
  29. join c in ClassmajorRepository.Entities on s.ClassmajorID equals c.ClassmajorID
  30. join g in GrademajorRepository.Entities on c.GrademajorID equals g.GrademajorID
  31. join f in FacultymajorRepository.Entities on g.FacultymajorID equals f.FacultymajorID
  32. join col in CollegeRepository.Entities on f.CollegeID equals col.CollegeID
  33. join sc in StudentContactRepository.Entities on s.UserID equals sc.UserID into stuCont
  34. from stc in stuCont.DefaultIfEmpty()
  35. join dic in DictionaryItemRepository.Entities.Where(d => d.DictionaryCode == (typeof(CF_STUDENTSTATUS).Name)) on s.StudentStatus equals dic.Value into sudentStatus
  36. from stua in sudentStatus.DefaultIfEmpty()
  37. join std in DictionaryItemRepository.Entities.Where(d => d.DictionaryCode == (typeof(CF_Standard).Name)) on f.StandardID equals std.Value
  38. join esy in SchoolyearRepository.Entities on rs.EnteringSchoolYearID equals esy.SchoolyearID
  39. select new StudentView
  40. {
  41. UserID = u.UserID,
  42. LoginID = u.LoginID,
  43. Name = u.Name,
  44. CollegeID = col.CollegeID,
  45. CollegeName = col.Name,
  46. StandardName = std.Name,
  47. SchoolyearID = esy.SchoolyearID,
  48. SchoolyearName = esy.Code,
  49. StudentStatus = s.StudentStatus,
  50. StudentStatusName = stua.Name,
  51. StudentType = s.StudentType,
  52. CreateTime = s.CreateTime
  53. };
  54. return query;
  55. }
  56. }
  57. }