How do I select a Random Row using NHibernate's ICriteria API?

前端 未结 2 612
醉话见心
醉话见心 2020-12-05 22:01

Can I select a random row using NHibernate\'s ICriteria API?

相关标签:
2条回答
  • 2020-12-05 22:32

    If you are not limited to using ICriteria, I might recommend using HQL instead for selecting a random row, since it may provide more flexibility to use the Random function supplied by your db provider.

    
    IQuery q = NHibernateSession.CreateQuery("your hql statement here")
    
    
    0 讨论(0)
  • 2020-12-05 22:35

    Just as cundh2o said, it's DBMS-specific. But you can subclass the Order class and define your own custom ordering. For example, for SQL Server:

    public class RandomOrder: Order {
        public RandomOrder() : base("", true) {}
        public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) {
            return new SqlString("newid()");
        }
    }
    
    0 讨论(0)
提交回复
热议问题