Как бы вы выполнили MultiMap с использованием EF/Linq?C#

Место общения программистов C#
Ответить
Anonymous
 Как бы вы выполнили MultiMap с использованием EF/Linq?

Сообщение Anonymous »


Я пытаюсь получить результат оператора SQL с отношением «один ко многим» и сопоставить его с моделью с информацией заголовка и подмножеством объектов из таблицы «многие».

В настоящее время я использую Entity Framework для создания запроса:

var result = из PI в PersonId присоединиться к ab в завтраке на PI.BreakfastId равно ab.Id в abTemp из AB в abTemp присоединиться к Al на обеде на PI.LunchId равно al.Id в alTemp из AL в alTemp присоединиться к объявлению в Dinner на PI.DinnerId равно ad.Id в adTemp из AD в adTemp выбрать нового человека { ...? } Возврат из SQL выглядит примерно так:
Идентификатор Имя СъелиНаЗавтрак AteForLunch AteForDinner 123 Тим Яйца Сэндвич с ветчиной Стейк 123 Тим Бекон Чипы Картофель 456 Шэрон Зерны Куриная рулет Салат 456 Шэрон ноль ноль Курица-гриль 789 Ральф Зерны ноль Лазанья
Я хочу добавить это в список следующей модели:

публичный класс Person { общедоступный десятичный идентификатор {get; набор;} общедоступная строка Имя {get; набор;} общественный IEnumerable AteForBreakfast {get; набор;} общественный IEnumerable AteForLunch {get; набор;} общественный IEnumerable AteForDinner {get; набор;} } Я видел это до использования Dapper с QueryAsync и MultiMap, но не могу найти эквивалент с использованием Entity Framework и Linq.

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

Я не уверен, что я что-то упускаю или неправильно подхожу к этому сопоставлению. Будем очень признательны за любую помощь, заранее спасибо!
Ответить

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

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

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

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

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