我试图使用饼图来显示统计数据。数据在我的表格中,我这样得到:
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}%")
)
)
我的视图中有一些语法错误,在系列属性中:
无法将lambda表达式转换为" string"
任何人都可以向我解释我应该遵循的语法来修复此错误吗? THX
答案 0 :(得分:2)
我认为你在LINQ中以错误的方式执行Count。
Count = g.Select(l => l.language.lang).Count()
没有必要选择此处,因为它们已经是您的.GroupBy
组应该是:
Count = g.Count()