2015-11-16 13 views
1

По какой-то причине я не могу использовать Select() после перехода()/Take(), если я не сделаю это определенным образом. Следующий код работает и позволяет мне использовать результат как часть дополнительного запроса.NHibernate: Невозможно выбрать после пропустить в определенном сценарии

var query = QueryOver.Of<MyType>(); 
query.Skip(1); 
var result = query.Select(myType => myType.Id); 

Однако, если я попытаюсь создать запрос на одной строке, как показано ниже, я не могу скомпилировать.

var query = QueryOver.Of<MyType>().Skip(1); 
var result = query.Select(myType => myType.Id); 

Похоже, что код в первых результатах в существе запроса типа QueryOver < MyType, MyType> а вторые результаты в существе запроса типа QueryOver < MyType>.

Он также работает, если написан так.

var query = QueryOver.Of<MyType>().Select(myType => myType.Id).Skip(1); 

Любые идеи, почему вторая версия терпит неудачу, когда работают первая и третья версии? Это похоже на странное поведение.

ответ

0

У вас есть опечатка во второй версии ...

var query = QueryOver.Of<MyType().Skip(1); 

пропускает >

var query = QueryOver.Of<MyType>().Skip(1); 

Не уверен, что если то, что вы где искали.