LINQ to Entities no reconoce el método Generic.List (int) al método Generic.IEnumerable (int)
La base de datos contiene Pedidos. Los pedidos pueden estar contenidos dentro de un grupo de pedidos. Para cada grupo de Pedidos, podría contener 1 a muchos Pedidos.
Sin embargo, los pedidos podrían tener un valor NULL asignado a GroupOrderId ya que los pedidos anteriores no tenían el concepto de agrupación. Solo los nuevos pedidos imponen el concepto de ser agregado a un grupo.
La estructura de clase que se debe rellenar para realizar acciones en cada Orden es
public class OrdersGroup
{
public int? GroupOrderId { get; set; }
public List<int> OrderIds { get; set; }
}
La sentencia linq
var workPacketOrdersList = (from o in db.Orders
where
o.GroupOrderId >= groupOrderIdMin && o.GroupOrderId <= groupOrderIdMax &&
o.IsDeleted == false
orderby o.WorkPacketId ascending
group o by o.WorkPacketId
into grp
select new OrdersGroup
{
GroupOrderId = grp.Key,
OrderIds = grp.Select(g => g.OrderId).ToList()
}).ToList();
Excepción completa
LINQ to Entities does not recognize the method 'System.Collections.Generic.List`1[System.Int32] ToList[Int32](System.Collections.Generic.IEnumerable`1[System.Int32])' method, and this method cannot be translated into a store expression.
Veo que el tipo devuelto de la consulta linq es unList<OrdersGroup>
.
Si se omite el .ToList () final de la consulta, entonces el tipo de retorno se convierte en unIQueryable<OrdersGroup>
Independientemente de la acción que se realice a continuación, el resultado es una excepción de que este método no se puede traducir a una expresión de tienda.
He intentado eliminar el específicoselect new OrdersGroup
en un más genéricoselect new
y luego realice acciones en este resultado solo para encontrar la misma excepción de expresión de tienda.
¿Alguien puede dar una idea de dónde está incorrecto este linq?