我对MVC很新,并且对Linq有一些问题,我认为解决方案非常简单。
我在数据库中有一个包含以下变量的表;
名称 - 字符串
价值 - 浮动
时间 - 日期时间
现在我想在两个数组中创建一个特定的名称,一个包含值,另一个包含Time,因此很容易绘制。我已经创建了一个控制器,我已经设法访问数据库并使用此代码获取特定名称;
var Names = db.Graphs
.Where(r => r.Name.Contains(Name) ||
string.IsNullOrEmpty(Name))
.Take(10)
但我完全坚持如何通过数据库进行迭代,得到两个数组并将其发送到我有我的Highchart-plot的View。
的Javascript;
series: [{
name: 'NameOn',
data: [23.3, 18.3, 13.9, 9.6] <--- Where i want to insert my data
}]
有关如何检索数据的想法吗?
答案 0 :(得分:2)
对于irregularTimeChart数据格式如下
public static Series GetIrregularTimeChartData()
{
List<Series> Series = new List<Series>();
// get data from db and convert it to chart data (name, value, date)
var chartSeries = db.Graphs.GroupBy(x => new { x.Name })
.Select(g => new
{
Name = g.Key,
Data = g.Select(x => x.Value).ToArray(),
Date = g.Select(x => x.Date).ToArray()
}).ToArray();
// create 2D array => [value, date]
foreach (var item in chartSeries)
{
int lenght = item.Data.Count();
object[,] data = new object[lenght, 2];
for (int i = 0; i < lenght; i++)
{
data[i, 0] = item.Date[i];
data[i, 1] = item.Data[i];
}
Series localSeries = new Series { Name = item.Name, Data = new Data(data) };
Series.Add(localSeries);
}
return Series;
}
将此数据设置为图表数据源。您可以使用examples in this page获取更多信息。