В нашем онлайн-приложении для выставления счетов мы даем сводную информацию о том, какие счета получил клиент и какие платежи он сделал.
Для того, чтобы это работало, я должен сначала вытащить платежи, а затем сопоставить их со счетами. Поэтому я должен сделать что-то вроде:
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 ответ и вижу много ответов, но ни один из них не объясняет мою проблему.