Как объединить таблицы и сгруппировать результаты с помощью LINQ?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как объединить таблицы и сгруппировать результаты с помощью LINQ?

Сообщение Anonymous »

У меня есть таблица продуктов и таблица Product_Images с отношением один ко многим (один продукт может иметь несколько изображений), и я пытаюсь получить все продукты с соответствующими изображениями. На данный момент у меня есть:

Код: Выделить всё

 var results = (from p in _context.Products
join i in _context.Product_Images on p.Id equals i.Product.Id
select new
{
p,
i
}).ToList();
Однако это возвращает отдельные результаты для каждого изображения, даже если они относятся к одному и тому же товару:

Код: Выделить всё

{product1, product1Img1}
{product1, product1Img2}
{product1, product1Img3}
Мне нужно, чтобы результаты содержали товар и список всех связанных с ним изображений, например:

Код: Выделить всё

{product1, [product1Img1, product1Img2, product1Img3]}
{product2, [product2Img1, product2Img2, product2Img3]}
{product3, [product3Img1, product3Img2, product3Img3]}
Я пробовал использовать группировать по для изображений после объединения таблиц, но получал либо сообщение «Метод 'GroupBy' не поддерживается».
strong>" или "За операцией GroupJoin должна следовать операция SelectMany, где селектор коллекции вызывает исключение метода DefaultIfEmpty.
", и я могу только предполагать, что мой синтаксис неверен. .

Подробнее здесь: https://stackoverflow.com/questions/787 ... using-linq
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»