加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Linq Orderby随机ThreadSafe用于ASP.NET

发布时间:2020-12-12 16:35:29 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用 Asp.net MVC与Sharp Architecture. 我有这个代码: return _repositoryKeyWord.FindAll(x = x.Category.Id == idCAtegory) .Take(50).ToList(); 我如何随机订购? 注意:我不想订购50个提取的项目,我想要订单,然后提取50个项目. THKS 解决方法 实
我正在使用 Asp.net MVC与Sharp Architecture.

我有这个代码:

return _repositoryKeyWord.FindAll(x => x.Category.Id == idCAtegory)
                .Take(50).ToList();

我如何随机订购?
注意:我不想订购50个提取的项目,我想要订单,然后提取50个项目.

THKS

解决方法

实现高效的一种方法是向列数据添加一个随机int(创建每个记录)的随机播放.

然后访问表的查询将成为…

Random random = new Random();
int seed = random.Next();
result = result.OrderBy(s => (~(s.Shuffle & seed)) & (s.Shuffle | seed)); // ^ seed);

这在数据库中进行XOR操作,并根据XOR的结果进行排序.

优点:-

>高效:SQL处理
订购,不需要取整

>可重复:(适合)
测试) – 可以使用相同的随机
种子生成相同的随机
订购
>大多数(所有?)实体框架支持
数据库

这是我的家庭自动化系统随机播放列表所使用的方法.它每天选择一个新的种子,在白天提供一致的顺序(允许简单的暂停/恢复功能),但每个新的一天清新的每个播放列表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读