Ваш запрос LINQ использует только объединения для базовой фильтрации счетов-фактур, поскольку в конце вы выбираете переменную i. Я думаю, что ответ на этот пост даст вам результат, который вы хотите:
Ошибка: сущность или сложный тип не могут быть созданы в запросе LINQ to Entities
Я предлагаю вам создать собственный класс со всеми свойствами, которые вы хотите загрузить, и выбрать результаты вашего оператора LINQ в свой пользовательский класс.
Пользовательский класс:
public class CustomInvoice
{
public int InvoiceID { get; set; }
public int InvoiceNumber { get; set; }
public int ProductID { get; set; }
public string ProductName { get; set; }
public int InvoiceID { get; set; }
public string CustomerName { get; set; }
}
Функция службы домена:
public IQueryable<CustomInvoice> GetInvoices()
{
return (from i in this.ObjectContext.Invoices
join p in this.ObjectContext.Product equals condition
join c in this.ObjectContext.Customer equals condition
select new CustomInvoice
{
InvoiceID = i.ID,
InvoideNumber = i.InvoiceNumber,
ProductID = p.ID,
ProductName = p.Name,
CustomerID = c.ID,
CustomerName = c.Name
}; );
}
Я не пробовал тестировать этот код, но идея должна помочь вам.