0

데이터베이스 모델에 문제가 있습니다. 나는 이것에 상당히 새롭다, 그러므로 미안해. 여기에 ... 내가 자동차 클래스 모양을 생성하는 방법을1 대 다수의 순환 관계

세션 모델이다

public partial class Session 
{ 
    public Session() 
    { 
     this.Tutors = new HashSet<Tutor>(); 
    } 

    public int SessionId { get; set; } 
    public int StudentStudentId { get; set; } 

    public virtual Student Student { get; set; } 
    public virtual ICollection<Tutor> Tutors { get; set; } 
} 

학생 모델

public partial class Student 
{ 
    public Student() 
    { 
     this.Sessions = new HashSet<Session>(); 
    } 

    public int StudentId { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 

    public virtual ICollection<Session> Sessions { get; set; } 
} 

컨트롤러

public Student Get(int id) 
    { 

     using(var db = new studytree_dbEntities()) 
     { 

      Student s = db.Students.FirstOrDefault(i => i.StudentId == id); 



     return s; 
     } 
    } 

나는 문제가 무엇인지 알고있다. 데이터를받는 학생 테이블에서 데이터베이스 쿼리. 그것은 sessionid 열을 가지고 있으므로 세션 테이블로 이동하여 세션을 쿼리합니다. 그러나 일대 다 관계이기 때문에 세션 테이블에는 한 명의 학생이 있으므로 루프가 만들어집니다. 학생이 세션을 잡고 세션이 학생 등을 움켜 잡습니다. 어떻게하면 한 단계 깊숙이 들어가게 할 수 있습니까? 내가 할 수 있기를 원하는 것은 학생에게 질문하고 모든 속성을 얻는 것입니다.

+0

"모든 속성"에는 학생 세션이 포함됩니까? –

+0

MVC 또는 Web API 컨트롤러입니까? –

+0

이것은 webAPi 컨트롤러 – user3516446

답변

0

한 가지 방법은 세션의 학생 참조를 구체화하지 않고 수동으로 학생과 세션을 구체화하는 것입니다. 이 강령은 가정교사가 어떤 학생도 언급하지 않는다고 가정합니다. 그럴 경우 Tutor를 수동으로 구체화해야합니다.

+0

이 오류가 발생합니다. System.Data.Entity.dll에서 'System.NotSupportedException'유형의 예외가 발생했지만 사용자 코드에서 처리되지 않았습니다. 추가 정보 : Entity 또는 LINQ 쿼리에서 엔터티 또는 복합 유형 'studytree_dbModel.Student'를 생성 할 수 없습니다. – user3516446

+0

사과드립니다. 내 답변을 업데이트하고 학생의 메모리 복사본을 얻기 위해'ToList'를 사용했습니다. 변경을 시도하십시오. –