Синтаксис проекции запроса nhibernate. - PullRequest
7 голосов
/ 19 декабря 2010

Я пробую код из поваренной книги NH 3.0 и удивляюсь, почему я не могу получить приведенный ниже код для компиляции.Я думаю QueryProjectionBuilder, который должен выполнить эту работу, находится в "NHibernate.Criterion.Lambda", но директива using для этого не помогает.

Проблемы - это части SelectGroup и SelectAvg.Предполагая, что синтаксис из книги правильный, кто-нибудь может увидеть здесь отсутствующую ссылку?

namespace Queries.Implementations
{
using System;
using System.Collections.Generic;
using System.Linq;
using Eg.Core;
using NHibernate;
using NHibernate.Criterion;
using NHibernate.Criterion.Lambda;

    public class QueryOverQueries : CookbookQueriesBase
    {

        public override IEnumerable<NameAndPrice> GetAvgDirectorPrice(ISession session) {
            return _session.QueryOver<Movie>()
                .Select(list => list
                                    .SelectGroup(m => m.Director)
                                    .SelectAvg(m => m.UnitPrice)
                )
                .List<object[]>()
                .Select(props =>
                        new NameAndPrice
                        {
                            Name = (string) props[0],
                            Price = (decimal) props[1]
                        });

        }
    }
}

1 Ответ

10 голосов
/ 19 декабря 2010

Вы должны использовать .SelectList вместо .Select

...