Почему не работает session.CreateCriteria (typeof (...)) для не сопоставленного типа - PullRequest
1 голос
/ 27 октября 2010

Для каждой создаваемой мной сущности я пишу модульный тест, который просто загружает одну запись из базы данных, чтобы проверить, работает ли запрос и можно ли правильно установить данные для сущности. Вы можете увидеть это как модульный тест для основного отображения. Это также должно подтвердить, что файл сопоставления существует для типа и задан как встроенный ресурс.

Тест выглядит следующим образом (тест находится в базовом классе):

session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).List();

Я не делаю никаких утверждений, я просто хочу посмотреть, работает ли эта строка без исключений.

Теперь в одном случае я забыл установить файл сопоставления как встроенный ресурс, но тест все еще работал. Однако в базу данных не было отправлено ни одного запроса, поэтому он в основном ничего не делал.

Почему CreateCriteria () или List () не работают для несопоставленного типа? И как я могу проверить это конкретное требование?

РЕДАКТИРОВАТЬ: Если обнаружено, что следующая строка выдает исключение, но все еще задается вопросом о первом случае

session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).Future<TEntity>().ToArray()

1 Ответ

2 голосов
/ 27 октября 2010

Не знаю, но, видимо, в NHibernate они тоже не знают. См. https://nhibernate.jira.com/browse/NH-2183 об ошибке, о которой сообщалось по этой проблеме. Они все еще работают над этим.

...