NHibernate - Как написать критерий запроса, чтобы отразить, имеет ли столбец нулевое значение или нет

Я кодирую экран со списком элементов. Каждый элемент включает кнопку, с помощью которой пользователь может открыть диалоговое окно для ввода или чтения (ранее введенного) отзыва по указанному элементу строки. Поскольку обратная связь содержит значительный объем текстовых данных и может быть много позиций на странице, я использую AJAX для загрузки обратной связи по запросу.

Я хотел бы иметь другой значок для кнопки отзыва позиции в зависимости от того, оставил ли пользователь отзыв. Цель состоит в том, чтобы информировать пользователей о том, что еще предстоит ввести. Я использую NHibernate в качестве ORM. Можно ли написать запрос NHibernate, который включает логическое значение, указывающее, является ли столбец базы данных нулевым или нет? В противном случае можно ли вернуть длину строки для каждой строки, снова используя NHibernate? Я использую API критериев, но я буду благодарен за любую помощь.

По сути, я пытаюсь это сделать:

SELECT id, name, has_feedback is null as has_preview FROM my_table;

person JP.    schedule 23.07.2012    source источник
comment
почему бы не использовать hql / linqtonh и выбрать то, что вам нужно?   -  person Felice Pollano    schedule 23.07.2012


Ответы (1)


можно получить длину строки с помощью функций nhibernate

session.QueryOver<Foo>()
    .Select(Projections.SqlFunction("length", NHibernateUtil.Int32, Projections.Property<Foo>(foo => foo.Name)))
    .List();

session.CreateCriteria<Foo>()
    .SetProjection(Projections.SqlFunction("length", NHibernateUtil.Int32, Projections.Property(Name)))
    .List<int>();
person Firo    schedule 23.07.2012