Search code examples
nhibernaterandomicriteria

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


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


Solution

  • 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()");
        }
    }