Сущность или сложный тип не может быть построен в запросе LINQ to Entities

В нашем приложении для выставления счетов онлайн мы предоставляем сводку счетов, полученных клиентом, и произведенных им платежей.

Для того чтобы это работало, я должен сначала вытащить платежи, а затем сопоставить их со счетами. Поэтому я делаю что-то вроде:

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 и увидел много ответов, но ни один из них, похоже, не объясняет мою проблему.

7
задан Mike Wills 12 December 2011 в 16:20
поделиться