複数のテーブルからデータを取得する際に非常に混乱します。私は私のプロジェクトでMVVMとデータベースの最初のアプローチを使用しています。Entity Framework、複数のテーブルからデータを取得し、表示する列を選択する
テーブル
Iは、多対多の関係を持つ3つのテーブルがあります。ルーム、ApartmentRoomやアパートを。
RoomController
public class ApartmentController : Controller
{
private readonly IApartmentRepository _apartmentRepository;
public ApartmentController(IApartmentRepository apartmentRepository)
{
_apartmentRepository = apartmentRepository;
}
//...codes
[HttpGet]
public ActionResult List()
{
var apartmentList = _apartmentRepository.GetAll().ToList();
return View(apartmentList);
}
//...codes
}
List.cshtml
<div class="dataTables_wrapper">
<table class="table table-bordered table-striped" id="dataTable">
<thead>
<tr>
<th>Id</th>
<th>Door Number</th>
<th>Floor Number</th>
<th>Capacity</th>
<th>Fullness</th>
<th>Apartment Name</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.ToList())
{
<tr>
<td>@item.Id</td>
<td>@item.DoorNumber</td>
<td>@item.FloorNumber</td>
<td>@item.Capacity</td>
<td>@item.Fullness</td>
<td>@item.ApartmentRoom.Where(x => x.RoomID == item.Id).Select(x => x.Apartment.ApartmentName)</td>
<td>
@Html.ActionLink("Düzenle", "Edit", new { id = item.Id })
@Html.ActionLink("Sil", "Delete", new { id = item.Id })
</td>
</tr>
}
</tbody>
</table>
私はメソッドベースの構文を使用して、テーブルに表示するフィールドを取得しようとしました、部屋が属するアパートメントの名前は表示できませんでした。ビューで
結果は、私がRoom
テーブルとApartment
テーブルのApartmentName
フィールドのすべてのフィールドを一覧表示します。それ^^
おそらく、dbcontext設定で ''遅延読み込みを無効にするか、 '' Include''メソッドを使って子テーブルレコードを取得する必要があります。 –