.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
문제는 관계를 만들지 못하는 것입니다. 어떤 이유로 든 내보기가 둘 이상의 강사가있는 코스를 복제하기 때문에 데이터를 표시하는 것이 문제입니다. – Marin
당신은 –
보기를 게시 할 수 있습니까? 나는 그것을 게시물에 추가했습니다. – Marin