Je ne sais pas s'il y a un moyen facile de le faire, mais au fond ce que je voudrais faire est:ASP.NET MVC - Comment obtenir des enregistrements aléatoires du modèle?
var highlights = db.Banners.Where(h => h.Category == "highlight").ToList().GetRange(0,4);
Je possède ce modèle bannières où j'ai quelques faits saillants mais je voudrais simplement récupérer 4 mises en évidence aléatoires chaque fois dans un ordre différent.
Donc le code que j'utilise vient de récupérer une plage de [0..4] met en évidence et si vous avez moins de 4, il renvoie une erreur, et ils ne sont pas randomisés.
Des idées sur comment pourrais-je le faire facilement?
Le résultat que je voudrais avoir est une Liste <
Bannière >
pour passer à la vue, mais chaque fois avec un ordre différent comme:
[1,3,4,2] || [2,1,4,3] || [12,32,15,3]
Je pense que ce qu'il :)
Merci beaucoup
-1, le code lié à des extraits l'ensemble IEnumerable dans une première liste - cela signifie charger la totalité de la table de DB en mémoire Afin de choisir 4 aléatoires. – orip
A la réflexion, il charge de toute façon tous les faits saillants en mémoire. Je n'arrive pas à annuler le '-1', désolé. – orip
C'est très bon Dan! Je suis d'accord avec orip, mais le fait est qu'au moins pour l'instant ça marche plutôt bien puisque j'ai juste quelques disques dans la base de données ce ne sera pas un problème. – zanona