Мне нужно получить случайные строки из базы данных SQL Server. Я ищу способ добиться этого с помощью запроса LINQ. Является ли это возможным?
SQL-запрос: ВЫБРАТЬ [Id] ИЗ [MyTable] ЗАКАЗАТЬ ПО NEWID ()
Каков эквивалентный запрос LINQ для указанного выше SQL?
Заранее спасибо.
Ответ 1 · рейтинг 1 · Craig Quillen
Сделайте партиал для вашего класса контекста данных и вставьте следующий метод:
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