Я пытаюсь получить некоторые данные из моей базы данных, используя LINQ to Entities.(В конечном итоге я использую данные для создания диаграммы с использованием нового ASP.NET MVC3 ChartHelper.)
В рамках этого пользователь передает две строки, которые являются именами полей, которые ему интересны дляданные по осям X и Y.Как пример, «Стоимость» против «Время».Затем мне нужно создать набор данных, чтобы я мог передать его ChartHelper.Однако получение данных кажется довольно неуклюжим, и я надеюсь, что есть лучший способ сделать это.Вот что я сейчас делаю.(objectiveX
и objectiveY
являются строками, представляющими имя типа.)
List<double> xValues = new List<double>();
List<double> yValues = new List<double>();
// First get the data needed to build the chart.
foreach (Solution solution in this.Solutions)
{
IEnumerable<double> xVal = from x in solution.SolutionValues
where x.TypeName == objectiveX
select x.Value;
IEnumerable<double> yVal = from y in solution.SolutionValues
where y.TypeName == objectiveY
select y.Value;
xValues.AddRange(xVal);
yValues.AddRange(yVal);
}
Есть ли лучший способ сделать это?Каждый «AddRange» действительно добавляет только одно значение.Я бы предпочел просто получить все значения одним махом из одного выбора.Я знаю, что это возможно, но я не могу понять это правильно.