title: GroupJoin with list returns multiple results instead of attaching the list per result
body: <p>I have I query that im using GroupJoin for a list of items(father item) &amp;  GroupJoin to a list of items(first child item) to the second list(second child item) that has fk to the first child item.
  insted of getting a list for each item(father item) im getting one m  item per item (so insted of getting single result with a list of item im geten each("father") item multi time with a single ("first child item") result.</p>
  
  <p>I hope the code will explain better.</p>
  
  <p>Entity model:</p>
  
  <pre><code>public class QuettaReq
  {
      public QuettaReq()
      {
      }
  
      [Key] public int             Id   { get; set; }
      public       ApplicationUser User { get; set; }
  
      public Category Category { get; set; }
  
      public int CatId { get; set; }
      //Parameters 
  
      public virtual List&lt;QuettaOffer&gt;   QuettaOffer    { get; set; }
      public virtual List&lt;QuoteQuestion&gt; QuoteQuestions { get; set; }
  }
  
  public class QuoteQuestion
  {
      [Key] public int QuoteQuestionId { get; set; }
  
      public int       QuoteId   { get; set; }
      public QuettaReq QuettaReq { get; set; }
  
      public string         Question { get; set; }
      public IList&lt;Answers&gt; Answers  { get; set; }
  }
  </code></pre>
  
  <p>View model:</p>
  
  <pre><code>public class ReqestWithQA
  {
      [Key] public int Id { get; set; }
  
      //public ApplicationUser User { get; set; }
      public string SiteUserId { get; set; }
  
      //properties
      public virtual IList&lt;QAViewModel&gt; QAViewModel { get; set; }
      public         int                QuettaReqId { get; set; }
  }
  
  public class QAViewModel
  {
      public int    QuoteQuestionId { get; set; }
      public int    QuoteId         { get; set; }
      public string Question        { get; set; }
  
      public IList&lt;Answers&gt; Answers { get; set; }
  }
  </code></pre>
  
  <p>Query:</p>
  
  <pre><code>IQueryable&lt;ReqestWithQA&gt; viewModel = _context.Quetta
          .Include(q =&gt; q.Category)
          .Where(d =&gt; d.OfferDate &gt; DateTime.Now &amp;&amp; d.CatId == suplayerCat)
          .Where(rq =&gt; !postOn.Contains(rq.Id))
          .GroupJoin(
              _context.quoteQuestions.Include(t =&gt; t.Answers),
              quetta =&gt; quetta.Id,
              qestion =&gt; qestion.QuoteId,
              (quetta, joinQestionQuetta) =&gt; new ReqestWithQA
              {
                  ReqText         = quetta.ReqText,
                  Qentity         = quetta.Qentity,
                  CatId           = quetta.CatId,
                  CatName         = quetta.Category.CatName,
                  District        = quetta.District,
                  ApplicationDate = quetta.ApplicationDate,
                  DeliveryDate    = quetta.DeliveryDate,
                  OfferDate       = quetta.OfferDate,
                  TecnicalDetails = quetta.TecnicalDetails,
                  Bedget          = quetta.Bedget,
                  Id              = quetta.Id,
                  QAViewModel = new[] {
                      joinQestionQuetta
                          .Select(q =&gt; new QAViewModel
                          {
                              Question = q.Question, //there are 6 question
                              Answers  = q.Answers,
                              QuoteId  = q.QuoteId
  
                          })
                          .FirstOrDefault()
                  }
              });
  
  return View(viewModel.Distinct().ToList()); //viewModel results are 6 Should be 1 with 6 Q
  </code></pre>
  
  <p>I think the problem is the array but I have no idea what to use instead:</p>
  
  <pre><code>QAViewModel = new[] {
      joinQestionQuetta
          .Select(q =&gt; new QAViewModel
  </code></pre>