使用 Kendo 的饼图和动态数据

Use of Kendo's Pie chart with dynamic data

我正在尝试使用饼图来显示统计信息。数据在我的 table 中,我是这样得到的:

public class StatisticsAccess
{
    public static object getTypesForStatistics()
    {
        var dbo = new UsersContext();
        var all = (from a in dbo.Note
                      select a).ToList();
        var results = all.GroupBy(item => item.language.lang)
                         .Select(g => new
                         {
                             language = g.Key,
                             Count = g.Select(l => l.language.lang).Count()
                         });
        return (results.ToList());

    }
}

控制器:

public ActionResult Index()
{
    var results = Json(DAL.StatisticsAccess.getTypesForStatistics());
    return View();      
}

查看:

  @(Html.Kendo().Chart()
        .Name("chart")
                .Title(title => title
                    .Text("Share of Internet Population Growth, 2007 - 2012")
                    .Position(ChartTitlePosition.Bottom))
        .Legend(legend => legend
            .Visible(false)
        )
        .Series(series => {
            series.Pie(model => model.language, model => model.Count);
        })
        .DataSource(ds => ds.Read(read => read.Action("index", "Statistics")))
        .Tooltip(tooltip => tooltip
            .Visible(true)
            .Format("{0}%")
        )


    )

我认为 属性:

系列中存在语法错误

Cannot convert lambda expression to type "string"

任何人都可以向我解释我应该遵循的语法来修复这个错误吗? 谢谢

我认为您在 LINQ 中以错误的方式进行计数。

Count = g.Select(l => l.language.lang).Count()

这里不需要做 Select 因为它们已经从你的 .GroupBy

中分组了

应该是:

Count = g.Count()

Using GroupBy, Count and Sum in LINQ Lambda Expressions