Объясните разницу между 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>()
) это просто синтаксический сахар.