Include () 메소드는 일반적으로 특정 객체의 목록을 반환해야하지만, 이상하게도 ThenInclude ()를 사용하지 않고도 중첩 된 모든 객체를 반환합니다. 이러한 중첩 된 개체를 어떻게 차단해야합니까?
return Db.Courses.Include(x => x.Program).ToList();
프로그램 객체가있는 코스 목록을 반환해야하지만 Programs 객체에도있는 코스 개체도 반환합니다. 이 루프를 어떻게 끊어야합니까?
코스 클래스
public Courses()
{
CourseCoReqsCoRequisiteCourse = new HashSet<CourseCoReqs>();
CourseCoReqsCourse = new HashSet<CourseCoReqs>();
CourseGroupCourses = new HashSet<CourseGroupCourses>();
CoursePreReqsCourse = new HashSet<CoursePreReqs>();
CoursePreReqsPreRequisiteCourse = new HashSet<CoursePreReqs>();
CurriculumCoursePrerequisite = new HashSet<CurriculumCoursePrerequisite>();
EquivalenceCourses = new HashSet<EquivalenceCourses>();
SemesterCourses = new HashSet<SemesterCourses>();
StudentCourses = new HashSet<StudentCourses>();
}
public int CourseId { get; set; }
public string CourseNumber { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public int Credits { get; set; }
public bool? NormallyOfferedFall { get; set; }
public bool? NormallyOfferedSpring { get; set; }
public bool? NormallyOfferedSummer { get; set; }
public bool? NormallyOfferedWinterInt { get; set; }
public bool? NormallyOfferedSpringInt { get; set; }
public bool? NormallyOfferedSummerInt { get; set; }
public bool? IsActive { get; set; }
public bool? IsElective { get; set; }
public int ProgramId { get; set; }
public string Rules { get; set; }
public virtual Programs Program { get; set; }
public virtual ICollection<CourseCoReqs> CourseCoReqsCoRequisiteCourse { get; set; }
public virtual ICollection<CourseCoReqs> CourseCoReqsCourse { get; set; }
public virtual ICollection<CourseGroupCourses> CourseGroupCourses { get; set; }
public virtual ICollection<CoursePreReqs> CoursePreReqsCourse { get; set; }
public virtual ICollection<CoursePreReqs> CoursePreReqsPreRequisiteCourse { get; set; }
public virtual ICollection<CurriculumCoursePrerequisite> CurriculumCoursePrerequisite { get; set; }
public virtual ICollection<EquivalenceCourses> EquivalenceCourses { get; set; }
public virtual ICollection<SemesterCourses> SemesterCourses { get; set; }
public virtual ICollection<StudentCourses> StudentCourses { get; set; }
}
프로그램 수업 :
public partial class Programs
{
public Programs()
{
Courses = new HashSet<Courses>();
Curricula = new HashSet<Curricula>();
People = new HashSet<People>();
ProgramCourseGroups = new HashSet<ProgramCourseGroups>();
Roles = new HashSet<Roles>();
}
public int ProgramId { get; set; }
public int DepartmentId { get; set; }
public string ProgramCode { get; set; }
public string ProgramName { get; set; }
public bool? IsActive { get; set; }
public bool? IsMinor { get; set; }
public virtual Departments Department { get; set; }
public virtual ICollection<Courses> Courses { get; set; }
public virtual ICollection<Curricula> Curricula { get; set; }
public virtual ICollection<People> People { get; set; }
public virtual ICollection<ProgramCourseGroups> ProgramCourseGroups { get; set; }
public virtual ICollection<Roles> Roles { get; set; }
}
프로그램 객체가있는 코스 목록을 반환해야하지만 Programs 객체에도있는 코스 개체도 반환합니다. 이 루프를 어떻게 끊어야합니까?
변경 추적을 끄고 지연로드가 비활성화되어 있는지 확인하십시오. EG
return Db.Courses
.AsNoTracking()
.Include(x => x.Program)
.ToList();
변경 추적기는 개체를로드 할 때 탐색 속성을 수정합니다.