Я пытаюсь получить строку запроса с параметрами для целей отладки из структуры сущностей. Нет, я не буду использовать EFProfiler, потому что строки запроса должны быть видны как выходные данные на странице. Большинство этих запросов пишутся вручную с помощью ExecuteStoredQuery(). Однако приведение их к ObjectQuery дает значение null.
Пример:
ObjectResult<Parent> model = _context.ObjectContext().ExecuteStoreQuery<Parent>("SELECT * FROM Parents");
var objectQuery = model.AsQueryable() as ObjectQuery<Parent>;
объектный запрос равен нулю. ObjectContext() — это простой метод в контексте данных, который выглядит так:
return (this as IObjectContextAdapter).ObjectContext;
Я исчерпал свои собственные идеи, и все, что было найдено в результате поиска,... ну, бесполезно, потому что, кажется, никто не понимает этой проблемы. Имейте в виду, результаты возвращаются правильно из запроса.
Редактировать: Правильно, я должен был упомянуть и об этом.
Делая это:
var oq = m as ObjectQuery<Parent>;
Дает мне это:
Не удается преобразовать тип «System.Data.Objects.ObjectResult» в «System.Data.Objects.ObjectQuery» посредством преобразования ссылки, преобразования упаковки, преобразования распаковки, преобразования упаковки или преобразования нулевого типа.
Откуда, когда я подумал, что нужно использовать AsQueryable(), который, ну... нулевой по очевидным причинам. Это моя усталая голова забыла добавить эту маленькую деталь.