於 LINQ to Entity 中隨機取得 N 筆資料

在 SQL Server 中我們可以利用 ORDER BY NewID() 搭配 TOP(如下列 T-SQL 敘述)來做到類似隨機抽樣的效果。

 

   1:  use Northwind
   2:  go
   3:  
   4:  select top 20 *
   5:  from customers
   6:  order by NEWID()

 

 

若您想要利用 LINQ to Entity 來做到相同的效果,可以使用 orderby 子句搭配 Guid.NewGuid 來產生亂數的結果,最後再使用 Take 方法來取得前幾筆資料,類似下列的程式碼:

 

   1:              using (NorthwindEntities context = new NorthwindEntities())
   2:              {
   3:                  var query = from p in context.Customers
   4:                              orderby Guid.NewGuid()  //利用orderby Guid的方式來打亂資料
   5:                              select p;
   6:                  for (int i = 0; i < 3; i++)
   7:                  {
   8:                      foreach (var item in query.Take(20)) //利用Take方法取得前20筆資料
   9:                      {
  10:                          Console.WriteLine(item.CustomerID);
  11:                      }
  12:                      Console.WriteLine("-----------------------------");
  13:                  }
  14:              }
  15:              Console.Read();

 

 

執行結果如下:

 

image

转载于:https://www.cnblogs.com/zcm123/archive/2013/06/02/3113954.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值