2011-05-02 93 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); 

但有一種觀點綁定是一個爛攤子。 有點幫助嗎?

編輯: 這是我的觀點:

@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

查詢有沒有問題u能具體說明(有一些代碼)哪裏出了問題的整體思路。您可以在查詢中使用投影來構建模型並將其傳遞給視圖 – 2011-05-02 12:21:12

+0

查詢本身不是問題。我的問題是,我應該如何將此結果(IEnumerable >)綁定到我的頁面?此刻,我得到了一個null值的鍵值和我的Sum(x => x.Runs)語句的運行總數。 – 2011-05-02 12:23:39

回答

1

您可以創建一個視圖模型像

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

,您可以修改您的查詢有點像

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)}; 

現在你可以將此視圖模型綁定到您的視圖而不是複雜笨拙的分組。 * 注: *有可能在查詢的一些語法錯誤,但是這是投影分組到您的ViewModels

+0

當然!那會很好。有時我看不到樹林。 – 2011-05-02 21:25:30