En nuestra aplicación de facturación en línea, ofrecemos un resumen de facturación de las facturas que recibió el cliente y los pagos que realizó.La entidad o tipo complejo no se puede construir en una consulta LINQ to Entities
Para que esto funcione, primero tengo que retirar los pagos y luego compararlos con las facturas. Así que he de hacer algo como:
foreach (BillPaymentSummary payment in billPayments)
{
DateTime dt = payment.DueDate;
// Debug errors on this next line
var summary = (from a in db.BillHistories
where a.CustomerId == customerNumber && a.DueDate == dt && a.Type == "BILL"
select new BillSummary
{
Id = a.Id,
CustomerId = a.CustomerId,
DueDate = a.DueDate,
PreviousBalance = a.PreviousBalance.Value,
TotalBill = a.TotalBill.Value,
Type = a.Type,
IsFinalBill = a.IsFinalBill
}).SingleOrDefault();
if (summary != null)
{
summary.PayDate = payment.PaidDate;
summary.AmountPaid = payment.AmountPaid;
returnSummaries.Add(summary);
}
else
{
summary = (from a in db.BillHistories
where a.CustomerId == customerNumber && a.DueDate == payment.DueDate && a.Type == "ADJ "
select new BillSummary
{
Id = a.Id,
CustomerId = a.CustomerId,
DueDate = a.DueDate,
PreviousBalance = a.PreviousBalance.Value,
TotalBill = a.TotalBill.Value,
Type = a.Type,
IsFinalBill = a.IsFinalBill
}).SingleOrDefault();
if (summary != null)
{
summary.PayDate = payment.PaidDate;
summary.AmountPaid = payment.AmountPaid;
returnSummaries.Add(summary);
}
}
}
He estado jugando con esto, pero no importa lo que hago, me sale el siguiente mensaje de error:
La entidad o tipo complejo 'UtilityBill.Domain .Concrete.BillSummary 'no se puede construir en una consulta LINQ to Entities.
¿Es porque estoy ejecutando consultas dentro de las consultas? ¿Cómo puedo evitar este error?
He intentado buscar en Google una respuesta y veo muchas respuestas, pero ninguna de ellas parece explicar mi problema.
posible duplicado de [La entidad no puede ser construido en una consulta LINQ a Entidades] (http://stackoverflow.com/questions/5325797/the-entity- no se puede construir en una consulta de linq-a-entidades) – flipchart