여러 테이블에서 데이터를 가져 오는 동안 매우 혼란 스럽습니다. 내 프로젝트에서 MVVM 및 데이터베이스의 첫 번째 접근 방식을 사용하고 있습니다.Entity Framework, 여러 테이블에서 데이터 가져 오기 및 표시 할 열 선택
테이블
나는 세 테이블이 다 대다 관계 : 거실, 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' 메소드를 사용해야합니다. –