NHibernate: InvalidCastException при использовании AliasToBeanResultTransformer - PullRequest
3 голосов
/ 24 мая 2011

Что случилось со следующим кодом (в NHibernate 2.1.2)?

        public IEnumerable<EmployeeSummary> List()
    {
        return Session.CreateCriteria<Employee>("e")
            .SetCacheable(true)
            .SetProjection(Projections.ProjectionList()
                            .Add(Projections.Property("e.Id"), "Id")
                            .Add(Projections.Property("e.CurrentOffice.Id"), "CurrentOfficeId")
            .SetResultTransformer(new AliasToBeanResultTransformer(typeof(EmployeeSummary)))
            .List<EmployeeSummary>();
    }

    public class EmployeeSummary
    {
        public Guid Id { get; private set; }
        public Guid CurrentOfficeId { get; private set; }
    }

Я получаю следующую ошибку: NHibernate.Exceptions.GenericADOException: Невозможно выполнить поиск [SQL: SQLнедоступно] ----> System.InvalidCastException: невозможно привести объект типа 'EmployeeSummary' к типу 'System.Object []'.

1 Ответ

3 голосов
/ 24 мая 2011

Сработало это - проблема в SetCacheable. Вы не можете использовать его с AliasToBeanResultTransformer.

Похоже, что это ошибка / баг-функция NHibernate. Не уверен, разрешено ли это в более поздних версиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...