Как получить множественный результат в запросе? - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь сделать запрос ... Я использую Entity Framework в проекте. Приведенный ниже запрос работает

public async Task<dynamic> CriarResumo(Pedido pedido)
            {
                var query = (from p in context.Pedido
                             join pi in context.PedidoItem on p.Id equals pi.PedidoId
                             join t in context.Tamanho on pi.TamanhoId equals t.Id
                             join s in context.Sabor on pi.SaborId equals s.Id
                             join pia in context.PedidoItemAdicional on pi.Id equals pia.PedidoItemId
                             join a in context.Adicional on pia.AdicionalId equals a.Id
                             where p.Id == pedido.Id
                             select new
                             {
                                 tamanho = t.Descricao + " - " + t.ML+"ml",
                                 sabor = s.Descricao,
                                 adicionais = a.Descricao,
                                 tempoPreparo = p.TempoTotal,
                                 valorTotal = p.ValorTotal
                             });

                var o = query.FirstOrDefault();

                return o;
            }

"Adicional" - это ассоциативная таблица (PedidoItemId и AdicionalId), поэтому возможно, что поиск выдаст более одного результата.

Пример: PedidoItem Id = 67

enter image description here

Предмет имеет Adicional-> id 1 и Adicional-> id 2.

То, как я Я могу получить Adicional только с идентификатором 1. Как я могу решить?

1 Ответ

4 голосов
/ 01 апреля 2020

Вы используете .FirstOrDefault(), который возвращает первый элемент последовательности или значение по умолчанию, если элемент не найден. Если вы хотите вернуть коллекцию предметов, вы должны использовать метод, который ее возвращает: например, .ToList() или .ToArray()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...