Согласно вашему фрагменту кода, prod - это единичный продукт типа продуктов. Итак, при условии, что ваш код, который вызывает вызов базы данных, возвращает список расширений примерно так:
List<products> prod = new List<products>();
prod = _productRepository.GetProductData(prodId);
Вы можете использовать linq GroupBy (пожалуйста, включите System.Linq для использования метода расширения GroupBy linq), чтобы найти общее количество каждого product, как показано ниже:
var anonymousList = prod.GroupBy(p => p.id).Select(g => new {id = g.Key, totalQuantity = g.Sum(p => p.quantity)}).ToList()
Вышеприведенный список возвращает анонимный список объектов, где каждый объект содержит id и totalQuantity.
Если вас интересует словарь идентификатора продукта против totalQuantity, тогда используйте что-то вроде ниже:
Dictionary<long, int> dictionary = prod.GroupBy(p => p.id).ToDictionary(k => k.Key, v => v.Sum(p => p.quantity));
ОБНОВЛЕНИЕ на основе обсуждения комментариев: Вы можете вызывать GroupBy на Prod без проверки количества. Не будет исключений.