Преобразование из выражения> к выражению> - PullRequest
2 голосов
/ 01 апреля 2012

Я мог бы использовать некоторую помощь по преобразованию выражений.

У меня есть метод для класса, который выглядит следующим образом:

protected IQueryOver<TEntity, TEntity> OrderQuery<TOrderBy>(
    Expression<Func<TEntity, TOrderBy>> orderBy)
    {
        return session.QueryOver<TEntity>().OrderBy(orderBy).Asc;
    }

Это общий запрос для класса репозитория.Я хочу, чтобы все было обобщенно, поэтому я указал параметр TOrderBy, чтобы тип свойства не имел значения.Тем не менее, этот пример реализации использует NHibernate, и я пытаюсь сделать следующее:

var query = session.QueryOver<TEntity>().OrderBy(orderBy).Asc;

Однако метод OrderBy принимает параметр Expression>, и поэтому я получаю ошибку компиляции, поскольку нет гарантиичто TOrderBy будет объектом.

Есть ли способ сделать это преобразование, или я должен просто придерживаться использования объекта, а не TOrderBy?Если я придерживаюсь объекта, не теряю ли я возможность упорядочить по ValueTypes (например, DateTime)?

Спасибо за любую помощь / предложения.

РЕДАКТИРОВАТЬ: я должен упомянуть, я сохранил этоВ общем, я буду писать реализации для nhibernate и Entity Framework.Это не проблема в EF, так как он использует обычный метод Linq OrderBy.Это просто в реализации Nhibernate у меня эта проблема

1 Ответ

0 голосов
/ 04 апреля 2012

Если вы используете LINQ с EF, почему бы не использовать LINQ с NHibernate вместо QueryOver?

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