2016-07-30 4 views
0

.net mvc core를 사용하고 있습니다. 저는 3 개의 테이블과 많은 관계를 맺고 있습니다 : 코스, 강사, 코스 강사. (CourseLecturers가 접합 테이블이 됨) 내가하고 싶은 것은 하나의 강좌 항목에 대해 모든 강사를 보여주기위한 것이므로 Id, CourseName 및 Lecturers의 세 열이있는 테이블과 같을 것입니다. 그리고 데이터를 가져 와서 표시하는 데 문제가 있습니다. 그리고 그 주안점은 모든 강사에게 과목을 보여주는 것입니다 (예를 들어, 한 명 이상의 강사가있는 경우). 이제 어떻게해야하는지 확신 할 수 없습니다. 내보기는 내 코스 모델에만 적용되므로 그리고 EF를 통해 강사 이름에 액세스하는 방법을 잘 모르겠습니다.많은 관계에서 데이터 가져 오기 및 표시

필자는이 과정에서 id가 CourseId와 동일한 CourseLecturers의 모든 항목을 선택한 다음 CourseLecturers 테이블 (LecturerId)에서 기본 키의 다른 부분의 ID를 어떻게 든 연결해야하며 내가 가진 열쇠를 가진 모든 강사를 선택하십시오. 이 시점에서 나는 데이터를 선택하는 방법과 그것을 보여줄 방법에 대해 확신하지 못하고있다. 이 강사에 대한 내 모델

public partial class Courses 
{ 
    [Key] 
    public int CourseId { get; set; } 
    public string CourseTitle { get; set; } 
} 

입니다 :

는이 과정에 대한 내 모델입니다

public partial class Lecturers 
{ 
    [Key] 
    public int LecturerId { get; set; } 
    public string Lecturer { get; set; } 
} 

는 그리고 이것은 CourseLecturers 내 모델 :

public partial class CourseLecturers 
{ 
    [Key] 
    [ForeignKey(nameof(Courses))] 
    public int CourseId { get; set; } 
    public Courses Courses { get; set; } 

    [Key] 
    [ForeignKey(nameof(Lecturers))] 
    public int LecturerId { get; set; } 
    public Lecturers Lecturers { get; set; } 
} 

어쩌면 내가해야 하는가 내 수업 수업 내에서 CourseLecturers 클래스를 추가 한 다음 해당 데이터에 액세스하려고합니까? 그러나 그것이 작동한다면 어떻게 데이터를 디스플레이 할 것인가? 내 모델에 새로운 DisplayClass를 생성 한 다음 해당 DisplayClass를 뷰에 전달합니까?

컨트롤러 내 인덱스 방법 :

public IActionResult Index() 
    { 
     return View(_context.Courses.Include(c => c.CourseLecturers).ThenInclude(cl => cl.Lecturers)); 
    } 

그리고 내보기는 다음과 같습니다

@foreach (var item in Model) 
{ 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.CourseId) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.CourseTitle) 
     </td> 
     <td> 

     @Html.DisplayFor(modelItem=>item.CourseLecturers.Lecturers.Lecturer) 

     </td> 
    </tr> 
} 

을 그리고이 표시됩니다 것입니다 : 이 http://imgur.com/a/lVZ0Q

답변

0

내가 당신을 어떻게 생각 찾고있는 사람은 here이며를 사용하여 다 대다 관계가있는 데이터 모델을 만드는 방법을 자세히 설명합니다.은 ASP.Net MVC입니다.

+0

문제는 관계를 만들지 못하는 것입니다. 어떤 이유로 든 내보기가 둘 이상의 강사가있는 코스를 복제하기 때문에 데이터를 표시하는 것이 문제입니다. – Marin

+0

당신은 –

+0

보기를 게시 할 수 있습니까? 나는 그것을 게시물에 추가했습니다. – Marin

0

읽기 전용입니까? 나는 당신의 DB에서보기를 정의 할 것이고 그것은 훨씬 빨리 EF가 될 것이고 아이템에 접근하기위한 읽기 전용 엔티티를 만들 것이다.

관련 문제