L'entité ou de type complexe ne peuvent pas être construits en une requête LINQ to entities

En ligne sur notre application de facturation, de nous donner un récapitulatif de facturation de ce qui facture le client les a reçus et les paiements qu'ils ont fait.

Dans l'ordre pour que cela fonctionne, je dois d'abord tirer les paiements puis les faire correspondre à la facture. Donc, je dois faire quelque chose comme:

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);
        }
    }
}

J'ai été jouer avec cela, mais peu importe ce que je fais, je reçois le message d'erreur suivant:

L'entité ou de complexes de type 'UtilityBill.Domaine.Le béton.BillSummary " ne peuvent pas être construits en une requête LINQ to entities.

Est-ce parce que je suis en cours d'exécution des requêtes dans les requêtes? Comment puis-je obtenir autour de cette erreur?

J'ai essayé de chercher sur Google pour une réponse et voir beaucoup de réponses, mais aucun d'entre eux semblent expliquer mon problème.

OriginalL'auteur Mike Wills | 2011-12-12