zoukankan      html  css  js  c++  java
  • 转:使用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();

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

  • 相关阅读:
    每日一题_191118
    每日一题_191117
    每日一题_191116
    每日一题_191115
    每日一题_191114
    每日一题_191113
    每日一题_191112
    每日一题_191111
    每日一题_191110
    一道抛物线自编题的思考
  • 原文地址:https://www.cnblogs.com/techfans/p/4520086.html
Copyright © 2011-2022 走看看