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