У меня есть SQL-запрос объекта, который создает объект на основе полученных значений.
Проблема в том, что сущности не привязаны к контексту.Веб-элемент управления, использующий ObjetQuery, требует, чтобы объекты были присоединены к контексту для извлечения подтверждающих данных с помощью элементов управления навигацией.
Добавление результатов вручную добавит объект в контекст, но ObjectQuery используется какисточник данных.К сожалению, присоединение объектов к контексту вручную не является вариантом, так как элемент управления Telerik (RadGrid) требует запрос объекта для дополнительных функций (сортировка, фильтрация и т. Д.).
Вот код, генерирующий запрос объекта (функция - это метод сгенерированного ObjectContext):
public ObjectQuery<Invoice_Payment> getInvoicePaymentList(int PaymentID)
{
ObjectQuery<Invoice_Payment> oq = this.CreateQuery<Invoice_Payment>(@"SELECT VALUE DotNetNuke.Modules.Collections.Model.Invoice_Payment(Inv.ID, @PaymentID, IP.Amount, IP.TimeStamp, IP.LastModifiedBy, Inv.Company)
FROM Collections.Invoices As Inv Left Outer Join
Collections.Invoice_Payments As IP On IP.Invoice = Inv.ID && IP.Payment = @PaymentID Left Outer Join
Collections.Payments As P On P.ID = @PaymentID
WHERE (Inv.Invoice_Outstanding_Balance.ID is not null && Inv.Customer = P.Customer) || IP.Payment is not null
ORDER BY Inv.Document_Date
", new ObjectParameter("PaymentID", PaymentID));
oq = oq.Include("InvoiceDetails").Include("PaymentDetails");
oq.MergeOption = MergeOption.OverwriteChanges;
return oq;
}
Что я делаю неправильно или что я мог неправильно сконфигурировать, чтобы результирующие сущности не присоединялись к вызывающему контексту?
Редактировать:
После небольшого дополнительного исследования я обнаружил, что моя проблема не связана с этим одним типом сущности, но все типы сущностей, которые создаются с использованием Конструктор именованного типа .Моя проблема лучше определена следующим образом:
Каким образом объекты, созданные с использованием конструктора именованных типов в объекте SQL, могут быть присоединены к контексту при выполнении запроса?