zoukankan      html  css  js  c++  java
  • 於 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

  • 相关阅读:
    旅行,写作,编程
    Limu:JavaScript的那些书
    怎样花两年时间去面试一个人
    IE6之各种不适记录
    19位编程大师集锦
    开源中最好的Web开发资源汇总
    流行Linux和Windows脚本语言列表
    近来,一组名为“全球郁闷青年写真”的照片在网上热传...
    浏览器端技术体系概览 前端开发的七种武器
    这个世界从来没有任何一件工作叫“钱多、事少、离家近”
  • 原文地址:https://www.cnblogs.com/zcm123/p/3113954.html
Copyright © 2011-2022 走看看