저는 Asp.Net MVC 프로젝트에서 작업 중이며 EF를 사용하여 데이터베이스에 액세스합니다. 몇 가지 이유 때문에 먼저 데이터베이스 사용 방법을 사용하고 lazyLoading이 작동하는 동안 코드를 사용할 수 없습니다.게으른 로딩은 데이터베이스의 첫 번째 메서드에서 작동하지 않습니다.
public ActionResult ListAll()
{
List<Album> albums = new List<Album>();
using (newsDBEntities context = new newsDBEntities())
{
albums = context.Albums.ToList();
return View(albums);
}
}
그리고보기
@foreach (모델에 project.Models.Album 앨범) {
List<project.Models.Image> img = album.Images.Take(3).ToList();
<div class="albumHolder">
@foreach (var item in img)
{
<div class="imageHolder">
<img src ="@item.imageURL" width="200px" height="200px" />
</div>
}
<p class="albumP">@album.albumName</p>
</div>
}
<div></div>
</div>
: 예를 들어 나는 dbContext 처분 뒤에 다음 코드 같은 몇 가지 일을하지 못할 뷰에서 모델의 3 요소를 취하려고하는 줄에서 다음 예외가 발생합니다.
ObjectContext 인스턴스가 삭제되었으며 connec이 필요한 작업에 더 이상 사용할 수 없습니다 .
왜 게으른 로딩을 사용하는 동안 이미지를로드해서는 안되는 지 궁금합니다. 콘솔 응용 프로그램에서 비슷한 코드를 수행 할 때 왜 작동하는지 궁금합니다.
컨텍스트가 삭제되면 더 이상 데이터베이스에 연결되지 않습니다. 그렇다면 게으른로드가 데이터베이스에 연결하지 않고 탐색 속성을로드하는 방법은 무엇입니까? –
맞아요.하지만 EF tu가 쿼리를 실행해야하는 .toList()를 사용하면 앨범이 로컬 변수가됩니다 –
'앨범 '은 로컬이지만'이미지 '는 로컬이 아닙니다 ... –