我正在使用.net mvc核心。我與3個表有多對多的關係:課程,講師,課程講師。 (CourseLecturers是路口表) 我想要做的是向所有講師展示一個課程條目,因此它將像一個包含3列的表:Id,CourseName和Lecturers。我有一個獲取數據的問題,然後顯示它。它的重點是向所有講師展示一個主題(例如,如果有一個或多個講師)。現在我不確定如何實現這一點。由於我的視圖只會使用我的課程模型。我不確定如何通過EF訪問Lecturer名稱。獲取並顯示來自多對多關係的數據
據我所知,我應該從CourseLecturers中選擇所有條目,其中課程ID等於我的CourseId,然後以某種方式連接我的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; }
}
應該怎麼可能添加我的Courses類中的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