EntitySchemaQuery, сортировка

Здравствуйте! Необходимо с помощью ESQ (не Select !) реализовать такой запрос

select Number
from Document
order by CreatedOn desc

Столкнулся с проблемой: чтоб задать сортировку по колонке, ее необходимо добавить в запрос, то есть по факту получиться такой запрос

select Number, CreatedOn
from Document
order by CreatedOn desc

В моем случае включить в выборку нужно именно одну колонку.Подскажите, как задать сортировку без добавления колонки?

Нравится

6 комментариев

Как вариант думаю можно попробовать создать представление (view) которое отсортирует как вам нужно и вернет нужное вам количество колонок

Максим а в чем разница сколько колонок в запросе? 2 или 1. Вы же не делаете группировку и при этом сортировку. Суть своей задачи более подробно поясните.

Суть в том, что это будет подзапрос в другом запросе и мне нужно возвращать именно одну колонку из подзапроса. Например

select
	p.Number as Number,
	(
		select top 1 d.Number
		from Document d
		where d.ProjectId = p.Id and
		d.TypeId = 'DC2768E3-8767-4E59-AD83-2DC7C3B40DAA'
		order by d.CreatedOn desc
	) as LastDocument
from Project p 

И таких подзапросов больше одного, поэтому обычный join не подходит

Тогда вам Максим нужно использовать не ESQ а Select конструкцию и тогда все у вас взлетит. Так как ESQ в конце Генерирует результирующий запрос, а SELECT вы сами описываете весь свой запрос. Я бы пошел по пути SELECT.

Власов Михаил Викторович,

 

спасибо за ответ. Насчет класса Select я знаю. Но вот выборка реализована уже с помощью Esq, и просто необходимо в запрос добавить несколько колонок в виде подзапросов. Не хочеться переписывать работающий код.

В таком случае можно построить одну большую View с колонкой-подзапросом, зарегистрировать как схему и работать в ESQ с ней.

Показать все комментарии