Как бы вы выполнили MultiMap с использованием EF/Linq? ⇐ C#
-
Anonymous
Как бы вы выполнили MultiMap с использованием EF/Linq?
Я пытаюсь получить результат оператора 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 результатов). перед нумерацией страниц) и продолжал получать ошибки, из-за которых временные группы не могли быть оценены.
Я не уверен, что я что-то упускаю или неправильно подхожу к этому сопоставлению. Будем очень признательны за любую помощь, заранее спасибо!
Я пытаюсь получить результат оператора 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 результатов). перед нумерацией страниц) и продолжал получать ошибки, из-за которых временные группы не могли быть оценены.
Я не уверен, что я что-то упускаю или неправильно подхожу к этому сопоставлению. Будем очень признательны за любую помощь, заранее спасибо!
Мобильная версия