Случайная строка из базы данных SQL Server с использованием DLINQ

Мне нужно получить случайные строки из базы данных SQL Server. Я ищу способ добиться этого с помощью запроса LINQ. Является ли это возможным?

SQL-запрос: ВЫБРАТЬ [Id] ИЗ [MyTable] ЗАКАЗАТЬ ПО NEWID ()

Каков эквивалентный запрос LINQ для указанного выше SQL?

Заранее спасибо.


person Community    schedule 30.04.2009    source источник


Ответы (1)


Сделайте партиал для вашего класса контекста данных и вставьте следующий метод:

partial class MyDataContext {
    [Function(Name = "NEWID", IsComposable = true)]
    public Guid Random()
    {
        return Guid.NewGuid();
    }
}

Теперь вы можете скомпоновать это в свой запрос, и он будет преобразован в вызовы функции sql newid () следующим образом:

from x in dc.MyEntities orderby dc.Random() select x.Id
person Craig Quillen    schedule 30.04.2009