6
我可以使用NHibernate的ICriteria
API選擇一個隨機行嗎?如何使用NHibernate的ICriteria API選擇一個隨機行?
我可以使用NHibernate的ICriteria
API選擇一個隨機行嗎?如何使用NHibernate的ICriteria API選擇一個隨機行?
就像cundh2o說的那樣,它是DBMS特有的。但是您可以繼承Order類並定義您自己的自定義排序。例如,對於SQL Server:
public class RandomOrder: Order {
public RandomOrder() : base("", true) {}
public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) {
return new SqlString("newid()");
}
}
如果不限於使用的ICriteria,我可能會建議使用HQL,而不是選擇一個隨機行,因爲它可以提供更大的靈活性,使用您的數據庫提供商提供的隨機函數。
IQuery q = NHibernateSession.CreateQuery("your hql statement here")
2.1.2兼容:公衆覆蓋的SqlString ToSqlString(的ICriteria標準,ICriteriaQuery CriteriaQuery中) { 返回新的SqlString( 「NEWID()」); } – mxmissile 2010-09-17 21:14:32