NHibernate: не может выбрать после пропуска принять в определенном сценарии

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

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, а второй результат приводит к тому, что запрос имеет тип QueryOver.

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

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

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

1 ответ

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

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

отсутствует >

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

Не уверен, что это то, что вы ищете.

Другие вопросы по тегам