Вы можете получить LinqToSQL для генерации SQL, который использует функцию SQLID NEWID (). Вот моя реализация:
namespace Data // change to whatever the namespace of your DataContext is, or remove
{
/// <summary>
/// Add RANDOM() extension to the Data context...
/// </summary>
partial class DefaultDataContext // change to the name of your DataContext
{
[System.Data.Linq.Mapping.Function(Name = "NEWID", IsComposable = true)]
public Guid Random()
{
// this code is not actually executed, it simply provides a way to access
// T-SQL "NEWID()" function from Linq to SQL
throw new NotImplementedException();
}
}
}
Пример использования, чтобы извлечь случайный продукт из базы данных:
var product = (from p in db.Products // our DataContext instance is called db here
orderby db.Random()
select p).FirstOrDefault()