W naszej internetowej aplikacji do fakturowania podajemy podsumowanie płatności za rachunki otrzymane przez klienta i dokonane przez niego płatności.Podmiotu lub typu złożonego nie można skonstruować w zapytaniu LINQ do encji
Aby to zadziałało, muszę najpierw wyciągnąć płatności, a następnie dopasować je do rachunków. Więc mam coś takiego:
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);
}
}
}
Gram z tym, ale nie wiem co mam zrobić, pojawia się następujący komunikat o błędzie:
jednostki lub typu złożonego „UtilityBill.Domain .Concrete.BillSummary 'nie można skonstruować w kwerendzie LINQ to Entities.
Czy to dlatego, że korzystam z zapytań w ramach zapytań? Jak mogę obejść ten błąd?
Próbowałem wyszukać w Google odpowiedź i zobaczyć wiele odpowiedzi, ale żaden z nich nie wyjaśnia problemu.
możliwe duplikat [Podmiot nie może być wykonana w LINQ podmiotom zapytania] (http://stackoverflow.com/questions/5325797/the-entity- nie można skonstruować-w-a-linq-to-entity-query) – flipchart