2009-04-29 3 views
1

ASP.NET MVC보기에서 엔티티 쿼리 결과에 Linq에 표시하는 방법 : 내가보기 및 디스플레이에이 전달하려는내 ASP.NET MVC 응용 프로그램에 링크 2 엔티티 쿼리 식을

 
Dim var = From c In context.Evaluation_Template _ 
      From ae In context.Assigned_Evaluation _ 
      Join ua In context.User_Assignment On ae.Assignment_ID Equals ua.Assignment_ID _ 
      Select c.Evaluation_Name, ae.Due_Date, ua.Is_Started, ua.Is_Completed, ua.Is_Approved 

결과.

나는

 
Return View(var) 

을 시도하지만 난 결과를 반복하는 방법을 모르겠어요.

저는 .NET에 익숙하지 않으므로 모든 도움을 주시면 대단히 감사하겠습니다.

답변

0

처음에는 쿼리가 약간 엉망이 된 것처럼 보입니다. VB.NET에 대해서는 확신 할 수 없지만 Entity Framework 모델이 아닌 무언가를 선택하기 때문에 별도의 클래스가 필요합니다. 당신은 강력한 형식의 뷰를 생성 또는으로 설정하여이 작업을 수행 할

IEnumerable<Evaluation_Template> 

:

Dim var = From c In context.Evaluation_Template 
      .Include("Assigned_Evaluation") 
      .Include("User_Assignment") 
      Select c 

이, 나는 그것을 세 번째 eidt 게시 계속되어보기 페이지가 다음 취할 필요가 무엇 :) 보기 페이지의 페이지 지시. 당신은 또한 (오버 헤드가 적은) 당신이 시도하고있는 것을 할 수 있지만,보기 페이지로 보내려면 별도의 클래스가 필요합니다. 당신이보기에 사용하는 오브젝트를 강력한 형식의 원하는 경우

+0

도움 주셔서 감사합니다. 결과를 반복하는 방법에 대한 예제 코드를 게시 할 수 있다고 생각하십니까? – CoolGravatar

+0

VB.NET의 마법에 대해서는 아래를 참조하십시오. 나는 여전히 새로운 뷰를 생성하고 강력하게 유형화 된 뷰를 선택한 다음 ModelName.Evaluation_Template을 유형으로 선택하도록 권장 할 것입니다. 그게 최고의 가이드를 얻을 것이다. – mhenrixon

1

당신이보기에 가서에서 ... 물론

<%@ Page Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> 

<%@ Page Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of IEnumerable(Of String))" %> 

\ 상단을 변경해야 전달할 모델 유형을 String으로 바꿉니다. 컬렉션을 전달하려면 ...

Return View(query.ToList()) 

... 쿼리는 ADO.NET EF에서 제공하는 일종의 IQueryable 쿼리라고 가정합니다.

그런 다음보기에 당신이 전달 된 결과를 반복 할 수있다.

<% For Each s As String In Model 
     %><%=s%><% 
    Next%> 

을 출력하는 뷰의 데이터 모델에 전달 된 컬렉션의 각 문자열을 것입니다.

뷰에 전달하기위한 형식 인 ViewData를 만드는 것이 가장 좋습니다.