我可以使用 NHibernate 的ICriteria
API 选择随机行吗?
问问题
2423 次
2 回答
14
正如 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()");
}
}
于 2009-04-08T23:16:24.467 回答
1
如果您不限于使用 ICriteria,我可能会建议您使用 HQL 而不是选择随机行,因为它可以提供更大的灵活性来使用您的数据库提供商提供的 Random 函数。
IQuery q = NHibernateSession.CreateQuery("your hql statement here")
于 2009-04-08T12:28:27.647 回答