Я думаю, это то, что вы ищете:
from i in Items
group i by i.CategoryId into g
select new
{
CategoryID = g.Key,
CategoryName = g.First().Category.Name,
Items = g
}
РЕДАКТИРОВАТЬ: Я надеюсь, что это отвечает на ваш вопрос из комментариев.
g
представляет собой набор элементов сгруппированыих CategoryId
.Items
в select
может быть проекцией, включающей любое подмножество Item
свойств, которые вам требуются.Пример:
from i in Items
group i by i.CategoryId into g
select new
{
CategoryID = g.Key,
CategoryName = g.First().Category.Name,
Items = g.Select(a => new{a.ItemID, a.ItemName})
}