2013-03-13 49 views
1

我有MVC的包裝器劍道UI的一些問題。似乎IEnumerable不支持除count之外的任何聚合值。我得到的例外是: 類型'System.Linq.Enumerable'的泛型方法'Sum'與提供的類型參數和參數兼容。如果方法是非泛型的,則不應提供類型參數。的類型沒有泛型方法'點心「System.Linq.Enumerable」是兼容

我不知道如何解決這個問題,我也不是知道這是否是劍道的一個缺陷。

請注意,以下使用的聚合函數不是每說LINQ但什麼劍道UI的包裝提供了一個功能。有關更多信息,請參閱Kendo UI Documentation

數據來源:

  • 羅斯文

控制器:

public ActionResult Index() { return View(); } 
public ActionResult Read([DataSourceRequest] DataSourceRequest request) { return GetView(request); } 
private IEnumerable<dynamic> GetData() { var db = new NwEntities(); return db.Products; } 
private JsonResult GetView(DataSourceRequest request) { return Json(GetData().ToDataSourceResult(request)); } 

查看:

@model IEnumerable<dynamic> 
@(
Html.Kendo().Grid(Model).Name("Grid") 
    .DataSource(ds => 
     ds.Ajax() 
     .Model(m => 
     { 
      m.Id("ProductID"); 
      m.Field("ProductName", typeof(string)); 
      m.Field("UnitPrice", typeof(decimal)); 
     }) 
     .Aggregates(aggregate => aggregate.Add(a => "UnitPrice").Count().Sum()) 
     .Read(r => r.Action("Read", "Home")) 
    ) 
    .Columns(columns => 
    { 
     columns.Bound("ProductID"); 
     columns.Bound("ProductName"); 
     columns.Bound("UnitPrice").Format("{0:c}"); 
    }) 
    .Groupable() 
) 
+2

'.Count之間的()之和()' - '.Aggregates(...)' - 這些只是無效。 – 2013-03-13 22:15:17

+0

我想這是由你的'IEnumerable '造成的。你爲什麼要用'IEnumerable '?我也不知道KendoUI包裝器是否支持它...因此,試着用產品ID,產品名稱,單價打包產品類來查看它是否有效。 – nemesv 2013-03-13 22:18:56

+1

@TimothyShields'.Count()。Sum()'不是Linq方法,而是Kendo UI網格的配置API。參見[文檔。](http://docs.kendoui.c​​om/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/configuration) – nemesv 2013-03-13 22:20:20

回答

1

現在這是一個已知的問題,劍道UI,並將由劍道UI球隊

-1

總和不帶參數僅適用於內置的十進制類型,雙,INT的IEnumerables等

要使用泛型類型調用它,你必須提供一個轉換功能。

I.e.

enumerable.Sum(e => e.Value) 

其中e.Value是你想要總結的。

另見http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx

+0

這是Kendos Sum()函數,而不是LINQ – 2013-03-13 22:30:27

+0

@MitchellSkurnik錯誤消息是關於'System.Linq.Enumerable'。編譯器告訴你錯誤來自哪裏,並且你拒絕聽別人告訴你。您的圖書館可能在您不知情的情況下使用這些方法。無論哪種方式,.Count()。Sum()沒有任何意義。 – 2013-09-11 21:16:05

+0

這些來自Kendo UI。 .Count()。Sum()添加以JSON形式返回的聚合。 – 2013-09-14 17:02:31

0

@MitchellSkurnik收到asnwer here固定。

相關問題