深蓝网络

网站建设,程序开发,主机域名,搜索引擎

linq读取随机数据的实现


做网站经常需要随机读取几篇最新的文章放在首页,在SQL语句比较直接,使用Newid()就可以了。但在linq里要怎么实现呢?


在Google后发现都是需要修改EntityModel的MAP,加随机函数。虽然可以实现上述功能,但非常不方便,而且在更新Entity后,所加的函就消失了。
后来在别一篇文章里找到了思路: 在取样的列表里加一个随机System.Guid.NewGuid()字段,然后按此字段排序。


大妙! 有时思路比技术更重要。


附上我修改后的代码,注意红色的代码,希望对大家有所帮助

var q = db.Article
        .Take(15) //这个是取样数量
        .Select(a => new { a.Id, a.Title, newid = System.Guid.NewGuid() })
        .OrderBy(a => a.newid)
        .Take(3); //这里是要读取数量

 


上一篇  |  下一篇

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。