Linq Orderby随机ThreadSafe用于ASP.NET

前端之家收集整理的这篇文章主要介绍了Linq Orderby随机ThreadSafe用于ASP.NET前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 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处理
订购,不需要取整

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

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

猜你在找的MsSQL相关文章