Pregunta

Aquí hay un ejemplo de uso de asociaciones de listas tomadas de BLTOOLKIT Documentación:

from p in db.Product
select new
{
  p.OrderDetails.Count,
  p.ProductName
};

dónde

class Product
{
  [PrimaryKey, Identity]
  public int ProductID;

  public string ProductName;

  [Association(ThisKey="ProductID",  OtherKey="ProductID")]
  public List<OrderDetail> OrderDetails;
}

¿Es posible obtener una lista de productos con detalles de pedidos para cada producto como este?

from p in db.Product
select new
{
  Details = p.OrderDetails,
  p.ProductName
};

El código anterior lanza LinqException con el siguiente mensaje:

No se puede encontrar convertidor para el 'system.collections.generic.list`1 [[OrderDetail, testProject, versión = 1.0.0.0, cultura = neutral, public keykoken = null]]' Tipo.

¿Fue útil?

Solución

Usar el proveedor normal de LINQ a SQL esto funcionaría bien. Con el proveedor BLToolkit Linq no lo sé.

Otros consejos

Si bien no he usado el BLTOOLKIT, puede intentar usar una clase que define en lugar de confiar en un tipo anónimo.

Es decir, podrías definir una clase llamada MyOrder que tiene propiedades String ProductName y List<OrderDetail> OrderDetails, y luego cambia tu consulta de Linq a algo como:

from p in db.Product
select new MyOrder
{
  OrderDetails = p.OrderDetails,
  ProductName = p.ProductName
};

No puedo garantizar que esto funcione, pero probablemente valga la pena (a menos que alguien publique algo más definitivo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top