В нашем приложении для выставления счетов онлайн мы предоставляем сводку счетов, полученных клиентом, и произведенных им платежей.
Для того чтобы это работало, я должен сначала вытащить платежи, а затем сопоставить их со счетами. Поэтому я делаю что-то вроде:
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);
}
}
}
Я играл с этим, но что бы я ни делал, я получаю следующее сообщение об ошибке:
Сущность или сложный тип 'UtilityBill.Domain.Concrete.BillSummary' не может быть построен в запросе LINQ to Entities.
Это происходит потому, что я выполняю запросы внутри запросов? Как я могу обойти эту ошибку?
Я пробовал искать ответ в Google и увидел много ответов, но ни один из них, похоже, не объясняет мою проблему.