在LINQ中每天随机选择n行

时间:2016-05-05 00:54:38

标签: c# sql linq

我是C#的新手,对LINQ有一个快速的问题。我有一个数据库,有两个表Re和De。 Re表具有“Time”和“Id”列。 De table有“Id”和“data”列。现在我想每天从Re获得5个条目,这5个条目必须在那一天的时间内随机选择。我怎样才能做到这一点。另外,是否有任何种类的随机数种子,以便我可以重现随机性?我尝试了几次,但它不起作用。

这是我的代码:

using (var db = new DBContext("Name=MyDB"))
{
    var Query = db.Re.Join(db.De,
                           r => r.Id,
                           d => d.Id,
                           (r, d) => new { r, d })
                     .Where(cr => cr.r.Time >= new DateTime(2016, 1, 1)
                                  && cr.r.Time < new DateTime(2016, 1, 30))
                     .OrderByDescending(cr => cr.r.Id)             
                     .GroupBy(a => new { y = a.r.Time.Year,
                                         m = a.r.Time.Month,
                                         d = a.r.Time.Day })
                     .SelectMany(g=>g.OrderBy(row => Guid.newGuid()).Take(200))
                     .Select(e => new
                                  {
                                      myId = e.r.Id,
                                      mydata = e.d.data
                                  })
                     .Take(100);
} 

0 个答案:

没有答案