LINQ to SQL - выберите СУММ с ГДЕ

Мне не удается заставить работать запрос Linq to Sql. По сути, мне нужна сумма столбца в таблице только для строк, соответствующих определенному условию. Упрощенная версия такова:

Orders = заказ, содержащий продукты OrderProducts = реляционная таблица, содержащая продукты, которые находятся в заказе Products = таблица, содержащая информацию о продуктах

Я могу получить общую сумму таких продуктов:

Dim totalQty = requests.Sum(Function(p) p.OrderProducts.Sum(Function(q) CType(q.ProductQty, Nullable(Of Integer))))

(Запросы - это IQueryable заказов)

Но мне также нужно получить сумму, в которой фактический продукт соответствует определенному условию. Что-то типа...

        Dim totalQty = requests.Sum(Function(p) p.OrderProducts.Sum(Function(q) CType(q.ProductQty, Nullable(Of Integer))))  

... ГДЕ p.OrderProducts.Product.ProductAttribute = true

Как мне получить этот запрос с дополнительным предложением where, чтобы получить только сумму qtys, где productAttribute = true ??? Спасибо!


person Ryan    schedule 17.08.2009    source источник