Как получить случайную запись из Замка ActiveRecord в .NET - PullRequest
0 голосов
/ 08 февраля 2011

Вероятно, есть много способов сделать это, какой из них самый быстрый и эффективный?

1 Ответ

0 голосов
/ 22 марта 2011

В Nhibernate вы можете выбрать случайную строку, например, так:

var query = "SELECT top 1 * from [Event] ORDER BY NEWID()";
ISQLQuery qry = session.CreateSQLQuery(query).AddEntity(typeof(Event));
Event randomevent = qry.List<Event>().First();

В активной записи мы должны работать немного усерднее и использовать следующее.

 Event randomEvent = (Event)ActiveRecordMediator<Event>.Execute(
    (session, instance) =>
        {

            var query = "SELECT top 1 * from [Event] ORDER BY NEWID()";

            ISQLQuery qry = session.CreateSQLQuery(query).AddEntity(typeof(Event));
            Event rand = qry.List<Event>().First();

            return rand;
        },new Event());

Просто замените event с вашей сущностью.

...