Posso selezionare una riga casuale utilizzando l'API ICriteria
di NHibernate?Come selezionare una riga casuale utilizzando l'API ICriteria di NHibernate?
6
A
risposta
13
Proprio come ha detto cundh2o, è specifico per DBMS. Ma puoi creare una sottoclasse della classe Order e definire il tuo ordine personalizzato. Ad esempio, per SQL Server:
public class RandomOrder: Order {
public RandomOrder() : base("", true) {}
public override SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery) {
return new SqlString("newid()");
}
}
1
Se non si è limitati a utilizzare ICriteria, si consiglia di utilizzare HQL invece di selezionare una riga casuale, poiché potrebbe fornire maggiore flessibilità per utilizzare la funzione Random fornita dal provider db.
IQuery q = NHibernateSession.CreateQuery("your hql statement here")
Problemi correlati
- 1. NHibernate SetTimeout su ICriteria
- 2. Linq a NHibernate vs. ICriteria
- 3. NHibernate - Implementare la query "NOT IN" utilizzando ICriteria
- 4. Selezionare riga casuale per ogni gruppo in una tabella postgres
- 5. NHibernate 2.1: LEFT JOIN sul SubQuery con Alias (ICriteria)
- 6. Selezionare un valore casuale da una matrice
- 7. linq seleziona una riga casuale
- 8. query mysql per selezionare una riga specifica e un'altra riga casuale
- 9. Esegui nHibernate icriteria sul risultato di un'altra query (due query distinte)
- 10. Come si esprime questa query LINQ utilizzando l'API ICiteria NHibernate?
- 11. Come selezionare una riga in Jquery datatable
- 12. selezione di riga casuale in R
- 13. riga casuale nel file
- 14. Come posso esprimere l'adesione a una sottoquery raggruppata utilizzando NHibernate?
- 15. nhibernate Linq
- 16. MySQL: come recuperare una riga casuale o più righe casuali?
- 17. Come posso ottenere una riga casuale in CakePHP 3.0?
- 18. eager loading Utilizzando Fluent NHibernate/NHibernate & Automapping
- 19. Come selezionare l'ultima riga secondaria di una relazione padre/figlio utilizzando SQL
- 20. Stampa una riga casuale da una query mysql
- 21. Selezionare una singola riga in MySQL
- 22. Selezionare l'ultima riga in una tabella SQL
- 23. Errore di codifica durante l'utilizzo dell'autenticazione Devd di LAPI
- 24. NHibernate aggiorna la riga prima di eliminarla?
- 25. Selezionare elemento casuale in un unordered_map
- 26. Come selezionare una casella di controllo in Haml utilizzando check_box_tag
- 27. LINQ Utilizzo Max() per selezionare una singola riga
- 28. Come selezionare una riga max per ogni gruppo in SQL
- 29. Quale cache di secondo livello selezionare per nHibernate?
- 30. NHibernate Second Level Cache con NHibernate Linq Provider 1.0
2.1.2 compatibile: public override SqlString ToSqlString (criteri ICriteria, ICriteriaQuery criteriaQuery) {return new SqlString ("newid()"); } – mxmissile
@mxmissile: saluti, ho aggiornato la mia risposta. –
L'uso di NewID come questo porta a prestazioni terribili su tavoli di dimensioni medio-grandi. – UpTheCreek