Linq to SQL: объединение объектов путем суммирования только одного поля - PullRequest
1 голос
/ 02 августа 2011

У меня есть набор объектов, которые я возвращаю через запрос Linq to SQL.Я хотел бы изменить запрос так, чтобы я возвращал набор объектов, которые объединяются только при совпадении одного из полей.

Соответствующими столбцами моей таблицы Products DB являются CategoryID и * 1005.*.Я хотел бы объединить поля так, чтобы, если CategoryID было идентичным, поля Quantity суммировались.Тем не менее, я не просто хочу сумму - мне нужен объект, который имеет все общие поля (предположим, все остальные поля идентичны для запроса), поэтому он выглядит как один объект типа Product.

Это возможно?(Я использую VB.net - но открыт для решений, которые включают представления базы данных, частичные классы и т. Д.)

1 Ответ

1 голос
/ 02 августа 2011

Похоже, вы хотите сгруппировать по CategoryId и создать новый продукт на основе совокупных данных.Например (извините, если мой VB ужасен):

From product In db.Products _
Group By CategoryID = product.CategoryID Into Group _
Select New Product With _
    CategoryID = CategoryID, _
    QuantityA = Group.Select(Function(p) p.QuantityA).Sum(), _
    QuantityB = Group.Select(Function(p) p.QuantityB).Sum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...