Объясните разницу между CreateCriteria(typeof(Cat)) и CreateCriteria<Cat>()

Я видел оба формата в разных примерах, учебных пособиях, блогах и т. Д., Но на всю жизнь я не могу найти объяснение разницы. В чем разница между

ICriteria crit = session.CreateCriteria(typeof(Cat));

а также

ICriteria crit = session.CreateCriteria<Cat>();

Когда я использую один и когда я использую другой?

Пример учебника с использованием session.CreateCriteria(typeof(Cat)) можно найти по адресу http://nhibernate.info/doc/nh/en/index.html.

Пример учебника с использованием session.CreateCriteria() можно найти по адресу http://ayende.com/blog/4023/nhibernate-queries-examples (таблица Блог вместо Cat)

Спасибо!!

1 ответ

Решение

Там нет разницы. Вы можете / должны использовать универсальный, если это возможно, и не универсальный, если у вас есть доступ только к экземпляру типа (некоторое отражение).

Неуниверсальный является частью NHibernate с момента, когда он был импортирован из Java Hibernate,

Универсальный был добавлен в Build 2.1.0.Alpha1 релиз.

Но потому что результат не является общим ICriteria (по сравнению с результатом QueryOver<T>()) это просто синтаксический сахар.

Другие вопросы по тегам