Как получить случайный список строк с помощью дозвукового 3 - PullRequest
0 голосов
/ 12 июля 2010

Я использую шаблон Active Record версии SubSonic 3. Мое требование - получить 3 случайных строки из таблицы. После некоторого поиска в Google я обнаружил, что могу использовать функцию NewID в SQL, но я не знаю, чтобы получить строки Randow, используя субзвуковой Спасибо

1 Ответ

1 голос
/ 14 июля 2010

Всегда есть «черный ход» с дозвуком. Он называется InlineQuery (SubSonic 2.2) или CodingHorror (SubSonic 3): http://subsonicproject.com/docs/CodingHorror

Ваш SQL-запрос, вероятно, будет выглядеть так:

SELECT top 3
newid() as sortorder, id
FROM some_table
ORDER by sortorder

Так что я бы предложил что-то вроде этого

List<int> result = new CodingHorror(@"
       SELECT TOP 3
       id, newid() as sortorder
       FROM some_table
       ORDER by sortorder
    ).ExecuteTypedList<int>();

Если он не изменился с дозвукового уровня 2.2 на 3, метод ExcecuteTypedList () возвращает первый элемент запроса, когда используется значение типа значения как параметр универсального типа. В этом случае: id.

Это тоже может сработать:

List<Product> result = new CodingHorror(@"
       SELECT TOP 3
       *, newid() as sortorder
       FROM products
       ORDER by sortorder
    ).ExecuteTypedList<Product>();
...