2011-05-02 80 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