關於LINQ中實現隨機查詢資料庫中記錄

2021-04-19 06:42:34 字數 1417 閱讀 2696

傳統使用sql命令列方式

select

top1

*from

customers 

order

bynewid

()--

隨機取出一條記錄,想取多條,則top n

當隨著linq時代的來代,這一切就有點不太好用了

按照傳統的思路,我們可以把linq查詢式寫為

var results

=(from c 

indb.customers orderby 

newid

()select c).take(

10);

//具體資料條數由take來進行指定

問題出現了,在c#當中根本就沒有提供newid()這個方法..

幾經周折,終於發現了乙個比較可行的方案,就是為其新增這個newid()方法

下面是實現方案

這裡我就說下我自己的.系統生成的linq to sql類會產生三個檔案.northwind.cs,northwind.dbml.layout,northwind.designer.cs

我們要做的就是在northwind.designer.cs中去新增我們需要的方法newid()

這個方法的功能當然就是和資料庫當中的newid()是功能一致的.

具體的方法法**如下:="

northwind")]

public

partial

class

northwinddatacontext : system.data.linq.datacontext

//後面的生成**略..

重新生成,編寫好這個,我們的訪問實現就變的很容易了哈

其使用方式和傳統訪問原理一致

db =

newnorthwinddatacontext();

var result 

=(from c 

indb.customers orderby db.newid() select c).take(

10);

foreach

(var item 

inresult)

console.writeline(item.companyname);

console.readline();

好了忙活了老半天,特貼出來希望朋友們少走彎路^_^

posted on 2008-08-01 11:22

西門瀟灑

閱讀(258)

編輯收藏

所屬分類:

linq學習

2008-08-01 11:28 by

王其榮的部落格

不錯, 學習了

linq 實現資料的隨機查詢

專案中想要實現查詢資料隨機顯示的效果,想到可以利用查詢語句實現資料庫的隨機查詢,很常用,於是就來總結一下。public string querytips catch exception e 隨機查詢n條資料 from t in table orderby guid t take n select f...

LINQ資料查詢

首先需要武林高手和武學類 武林高手類 武林高手類 class martialartsmaster public string name public int age public string meipai public string gongfu public int level public o...

關於資料庫的隨機查詢

隨機查詢資訊 select from table where id select floor rand select max id from table order by id limit 1 最後,再把語句完善一下,加上min id 的判斷。我在最開始測試的時候,就是因為沒有加上min id 的判...