Марк Гравелл опубликовал здесь решение , которое позволяет вам определить функцию, которая использует NEWID в частичном классе для DataContext.Не помещайте его в сгенерированный класс DataContext, иначе будущие обновления уничтожат все, что вы добавили.
Марк показывает, как использовать его с синтаксисом выражения запроса.В качестве альтернативы, с точечной нотацией вы могли бы написать:
var results = dc.Table.OrderBy(r => dc.Random()).Take(n);
Если вы не знакомы с созданием частичного класса, просто добавьте новый класс в свое решение.Его имя не имеет значения, если в определении класса используется имя класса DataContext с ключевым словом partial
.Например, если ваш DataContext с именем XYZDataContext
, вы можете добавить новый класс с именем XYZDataContextPartial.cs
и определить его как:
namespace YourNamespace
{
public partial class XYZDataContext
{
}
}