ObjectQuery не присоединяет сущности, созданные с помощью конструктора именованных типов, к контексту - PullRequest
1 голос
/ 15 октября 2011

У меня есть 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, могут быть присоединены к контексту при выполнении запроса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...