转:使用linq to sql 随机取一行数据的方法

原文地址:http://outofmemory.cn/code-snippet/1760/usage-linq-to-sql-suiji-take-yixing-data-method 虽然这看来已经不是真正的原文地址了

在linq to sql中我们可以通过创建一个假的用户自定义函数的方法来实现随机取一行数据的方法。

首先要在DataContext的类中添加用户自定义函数,最好是放在partial class中:

partial class MyDataContext {
     [Function(Name="NEWID", IsComposable=true)]
     public Guid Random()
     { // to prove not used by our C# code...
         throw new NotImplementedException();
     }
}

现在我们可以使用 order by ctx.Random() 这样的效果是在sql-server中执行order by NEWID()

例如:

var cust = (from row in ctx.Customers
           where row.IsActive // your filter
           orderby ctx.Random()
           select row).FirstOrDefault();

注意: 这个方法如果用在数据量很大的表中有可能会有性能问题。

时间: 2024-10-07 06:09:01

转:使用linq to sql 随机取一行数据的方法的相关文章

STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数

本文将介绍三个有趣的随机问题,分别是随机重新排列.从文件中随机取一行数据.生成N个随机数. 一.随机重新排列 将一个序列打乱并对其进行随机的重新排列,关键在于每种序列的被选择概率要一样,不然有失"公平".现在让我们来寻找如何保证每种序列被选择的概率一样大的算法. 首先假设这个数组只有二个元素,设数组a为{1, 2},显然这个数组只有二种可能的排列,要么是{1,2}要么是{2,1}.很容易想到一种方法--只要第二个元素有50%的概率与第一个元素交换即可.用代码表现下: if (rand(

在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型XXX的对象时检测到循环引用。

在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型 的对象时检测到循环引用. 异常信息(部分): System.Web.Services.Protocols.SoapException: 服务器无法处理请求. ---> System.InvalidOperationException: 生成 XML 文档时出错. ---> System.InvalidOperationException: 序列化类型 Web

最简单删除SQL Server中所有数据的方法

原文:最简单删除SQL Server中所有数据的方法  最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,

datatable编辑一行数据的方法

let d =t.row($(e).parents("tr")).data(); 上面的是获取一行数据的方法,如果是更改一行数据,则传入根之前数据结构相同的对象或者数组即可: t.row($(e).parents("tr")).data(data1).draw(); datatable有一个t.row.edit()方法,该方法必须得引用datatable的editor的js,实现可编辑功能,并且使用,如果只是单纯的自己想让一行数据替换,如:自己做的编辑功能,则直接用

arcgis python 随机取部分数据

# -*- coding: cp936 -*- import arcpy import os import ylpy import random def main(): num=ylpy.getCount(inFeature) n=int(num*mscale/100) ylpy.clearselect(inFeature) A=random.sample(range(num),n) FID=ylpy.getOIDField(inFeature) sql=str(FID)+" in ("

jmeter 随机取一个值的方法

1.添加用户自定义变量 在要用到随机值的地方写入 ${__RandomFromMultipleVars(1|2|0)} 例子: 效果: 原文地址:https://www.cnblogs.com/kaibindirver/p/11663082.html

sql server-获取重复数据的第一条

<span style="font-family:Microsoft YaHei;font-size:18px;">select tt1.LSH from (select t1.zblsh,t1.lsh, row_number() over(partition by t1.ZBLSH order by t1.XT_XGRQ desc) rn from grjx_zbgl_bhgzl t1 WHERE t1.nf = '2015' ) tt1 where tt1.rn <

Flink SQL解析Json格式数据的方法

1. Flink版本1.7.2 2. 引入依赖 使用maven构建工程,因此pom.xml添加如下依赖: <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table_2.11</artifactId> <version>1.7.2</version> </dependency> <!-- https://mvnrepos

SQL Server 批量插入数据的方法

运行下面的脚本,建立测试数据库和表. --Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Table Create table BulkTestTable ( Id int primary key, UserName nvarchar(32), Pwd varchar(16) ) go --Create Table Valued CREATE TYPE BulkUdt AS TABLE ( Id