2011-05-02 4 views
0

바인딩 골재 :L2S 내가 아주 간단한 모델을 가지고 고통

public class Delivery 
{ 
    public int DeliveryId { get; set; } 
    public int OverId { get; set; } 
    public int Ball { get; set; } 
    public int Runs { get; set; } 

    public Player Player { get; set; } 
} 

내가하고 싶은 모든 내가 다음에 결과에 대한 몇 가지 통계를 계산을 수행 할 수 있도록 플레이어로 그룹화 배달 오브젝트의 내 컬렉션이 내 MVC3보기.

필자는 거의 다 왔지만 L2S 쿼리와 모델 바인딩 선언 사이에는 결혼 할 수 없습니다. 이런 식으로 이렇게

거의 작동합니다

var batting = from d in deliveries 
       where d.Over.IsBatting == true 
       group d by d.Player into player 
       select player; 

return View(batting); 

그러나보기 바인딩이 엉망입니다. 도움이 되셨습니까? 편집

: 여기 내보기 : 당신은

public class VMPlayerRuns 
{ 
    public Player _Player{get;set;} 
    public int Runs{get;set;} 
} 

같은 뷰 모델을 만들 수 있습니다

@model IEnumerable<IGrouping<Cricket.Models.Player, Cricket.Models.Delivery>> 

@{ 
    ViewBag.Title = "Batting"; 
} 

<h2>Batting</h2> 

<p> 
    @Html.ActionLink("Create New", "Create") 
</p> 
<table> 
    <tr> 
     <th></th> 
     <th> 
      OverId 
     </th> 
     <th> 
      Ball 
     </th> 
     <th> 
      Runs 
     </th> 
    </tr> 

@foreach (var Item in Model) { 
    <tr> 
     <td> 
@*   @Html.ActionLink("Edit", "Edit", new { id=item.DeliveryId }) | 
      @Html.ActionLink("Details", "Details", new { id=item.DeliveryId }) | 
      @Html.ActionLink("Delete", "Delete", new { id=item.DeliveryId }) 
*@  </td> 
     <td> 
      @Item.Key 
     </td> 
     <td> 
      @*item.Ball *@ 
     </td> 
     <td> 
      @Item.Sum(x => x.Runs) 
     </td> 
    </tr> 
} 

</table> 
+0

검색어는 문제가있는 곳 (구체적으로 몇 가지 코드가 있음)이 어디에서 문제가 될 수 있습니까? 쿼리에서 투영법을 사용하여 모델을 만든 다음 뷰에 전달합니다. –

+0

쿼리 자체는 문제가 아닙니다. 내 문제는이 결과 (IEnumerable >)를 내 페이지에 어떻게 바인딩해야합니까? 현재, 합계 (x => x.Runs) 문에 대한 키와 실행 횟수의 null 값이 표시됩니다. –

답변

1

당신은 지금

var batting = from d in deliveries 
       where d.Over.IsBatting == true 
       group d by d.Player into player 
       from p in player 
       select new VMPlayerRuns{Player = p.Key, p.Sum(x=>x.Runs)}; 

처럼 쿼리 조금을 수행 할 수 있습니다 수정할 수 있습니다 복잡하고 어색한 그룹화보다는보기에이 뷰 모델을 바인딩하십시오. * 참고 : * 검색어에 구문 오류가있을 수 있지만보기 모드에 그룹화를 투영하는 것이 전체적인 아이디어입니다.

+0

물론! 그건 괜찮을거야. 때로는 나무 숲을 볼 수없는 경우가 있습니다. –

관련 문제