2012-03-22 6 views
1

누군가 다음 코드를 탐색 할 수 있습니까?ASP.NET MVC 도움이 필요합니다

public class StoreEditorViewModel 
{ 
    public List<Ticket> TotalView { get; set; } 

    public StoreEditorViewModel() 
    { 
     using (MvcTicketsEntities storeDB = new MvcTicketsEntities()) 
     { 
      var temp = storeDB.Tickets.Include(x => x.Genres).Include(x => x.Artists).ToList(); 
      TotalView = temp.ToList(); 
     } 
    } 
} 

은 내가 Inculde (X => x.genres) * 장르 내 데이터베이스에있는 다른 테이블을 이해하지 않습니다.

답변

0

Include는 사용자가 두 번 (티켓에 한 번, 그리고 티켓 장르에 대해) 호출하지 않고이 SQL 요청의 일부로 Genres 레코드를 가져 오도록 EF에 지시합니다. (코드는 매우 비슷) "우리는 장르 객체가있을 때 우리가뿐만 아니라로드하고 싶지는 다른 관련 엔티티를 표시 할 수있는 엔티티 프레임 워크의 기능을 활용거야 MVC 뮤직 스토어 예제에서 Jon Galloway을 인용

이 기능을 쿼리 결과 셰이핑 (Query Result Shaping)이라고하며, 필요한 모든 정보를 검색하기 위해 데이터베이스에 액세스해야하는 횟수를 줄일 수 있습니다. 검색 할 장르의 앨범을 미리 가져 오려고합니다. Genres.Include ("Albums")를 포함하도록 우리의 쿼리를 업데이트하여 관련 앨범을 원한다는 것을 나타냅니다. 이것은 단일 데이터베이스 요청에서 Genre 및 Album 데이터를 모두 검색하므로보다 효율적입니다. "

+0

Thx, 저는 ASP.NET MVC에 처음이므로 이해하지 못했습니다. – Msmit1993

관련 문제