首页 > 编程语言 > 详细

EF架构使用随机排序

时间:2016-03-20 23:50:45      阅读:295      评论:0      收藏:0      [点我收藏+]

c#当中,可以用Random类来获取随机数

EF当中,我们写Linq时,抑或是采用Linq的扩展方法时,发现都没有随机排序的方法,这就要求我们自己去扩展了

引用自http://www.cnblogs.com/lori/p/3166899.html

/// <summary>
    /// sql函数的扩展类
    /// </summary>
    public static class SqlFunctionExtensions
    {
        #region 功能方法
        /// <summary>
        /// 在linq to entity中使用SqlServer.NEWID函数
        /// </summary>
        [System.Data.Objects.DataClasses.EdmFunction("SqlServer", "NEWID")]
        public static Guid NewId()
        {
            return Guid.NewGuid();
        }
        #endregion

        #region 扩展方法
        /// <summary>
        /// 随机排序扩展方法
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source"></param>
        /// <returns></returns>
        public static IQueryable<T> OrderByNewId<T>(this IEnumerable<T> source)
        {
            return source.AsQueryable().OrderBy(d => NewId());
        }
        #endregion

    }

  但是,这个方法方法有个缺点,如果是Linq查询未加载的IQueryable集合,则无效,必须先加载(用ToList或ToArray)后再随机排序

EF架构使用随机排序

原文:http://www.cnblogs.com/dazhuangtage/p/5300095.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!