ASP.NET MVC - Как получить случайные записи из модели? - PullRequest
0 голосов
/ 17 сентября 2009

Я не знаю, есть ли простой способ сделать это, но в основном я хотел бы сделать следующее:

var highlights = db.Banners.Where(h => h.Category == "highlight").ToList().GetRange(0,4);

У меня есть эта модель Баннеры, где у меня есть несколько бликов, но я бы хотел получать только 4 случайных блика каждый раз в разном порядке.

Так что код, который я использую, просто извлекает диапазон из [0..4] выделений, и если у вас меньше 4, он возвращает ошибку, и они не рандомизируются.

Любые идеи о том, как я мог бы сделать это легко?

Результат, который я хотел бы получить, это Список < Баннер >, чтобы передать его в представление, но каждый раз в другом порядке, например:

[1,3,4,2] || [2,1,4,3] || [12,32,15,3]

Я думаю, вот и все:)

Большое спасибо

Ответы [ 2 ]

3 голосов
/ 17 сентября 2009

Чтобы рандомизировать баннеры и получить первые четыре или меньше, вы можете сделать это:

Random r = new Random(DateTime.Now.Ticks);

var highlights = db.Banners.Where(h => h.Category == "highlight").
    OrderBy(h => r.Next()).Take(4)
0 голосов
/ 17 сентября 2009

Здесь - пример случайной выборки LINQ для codeproject

...