title: How to use ToDictionary to convert a query result into a dictionary
body: <p>I have this query in EF:</p>
  
  <pre><code>var data = db.Inventario.Where(i =&gt; i.ClienteId.Equals(Global.ClienteID))
     .GroupBy(i =&gt; new { Tipo = i.Tipo.TipoNombre, Zona = i.Localidad.Zona.ZonaNombre, Localidad = i.Localidad.LocalidadNombre })
     .Select(i =&gt; new Registro()
        {
           Tipo = i.Key.Tipo,
           Zona = i.Key.Zona,
           Localidad = i.Key.Localidad,
           Estados = i.SelectMany(ei =&gt; ei.EstadoInventario)
              .GroupBy(ei =&gt; ei.Estado.EstadoNombre)
              .AsEnumerable()
              .ToDictionary(ei =&gt; ei.Key, ei =&gt; ei.Sum(item =&gt; item.EstadoInventarioValor ? 1 : 0))
        });
  
  this.Data = data.ToList();
  </code></pre>
  
  <p>When I run it, this error occurs:</p>
  
  <blockquote>
    <p>LINQ to Entities does not recognize the method
    'System.Collections.Generic.Dictionay`2[System.String,System.Int32]
    ToDictionary[IGrouping`2,String,Int32](System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.String,Data.EstadoInventario]],
    System.Func`2[System.Linq.IGrouping`2</p>
  </blockquote>
  
  <p>Estados property of Registro class is a Dictionary where I need to store a dictionary of key EstadoNombre with the value of the sum of records in the query result.</p>