Создайте хранимую процедуру, которая принимает значение @id как параметр и выполняет обе эти вещи. Затем вы используете DbDataAdapter для вызова хранимой процедуры.
Из вашего описания кажется, что вы используете словарь для представления видов «полей» / «свойств» и их значений, и что они связаны с каждым:
Словарь содержит ключ «date» со значением DateTime и различными другими ключами, которые соответствуют значениям десятичных чисел
blockquote>В этом случае вам лучше создать собственный класс с каждым из этих ключей в качестве отдельного свойства класса. Примерно так:
public class YourClass { public Date DateTime { get; set; } public int SomeProperty1 { get; set; } public int SomeProperty2 { get; set; } // .... }
Как только вы это сделаете, вместо
List<Dictionary<string,object>>
получитеList<YourClass>
. Теперь будет легко выполнить требуемый linq:Я хочу сгруппировать по дате и сделать среднее для каждого десятичного числа.
blockquote>var result = listOfCustomTypes.GroupBy(i => i.DateTime) .Select(g => new YourClass { Date = g.Key, SomeProperty1 = g.Average(i => i.SomeProperty1), SomeProperty2 = g.Average(i => i.SomeProperty2), });
И последнее, поскольку ваши данные изначально имеют формат JSON, вы можете:
- Как преобразовать объект JSON в объект Custom C #? [114 ]
- или, может быть, лучше использовать Linq для JSON для манипулирования данными: Запрос вложенных массивов JSON с помощью Linq, JSON.NET, C #