Linq To Sql中没有newid()方法
不过可以这样写
(from q in db.tt orderby Guid.NewGuid() select q).Take(50);
或者
因为NewId返回uniqueidentifier类型,我们将这个函数定义为
[Function(Name = "NewID", IsComposable = true)]
public Guid NewID()
{
return ((Guid)(this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod()))).ReturnValue));
}
调用时,可以
var q = db.Table1.OrderBy(p => db.NewID()).Take(10).ToList();
楼上的方法无效
Linq to sql允许将SQL的存储过程映射为方法,所以可以将NEWID存储过程映射出来