实体随机选择DB C#MVC

时间:2011-04-27 16:20:09

标签: c# asp.net-mvc entity-framework random

尝试找到解决方案,但我不能。

问题是下一个问题。我有EDM的数据库模型。我有一个具有从DB获取数据的函数的类。 像这样:

public IQueryable<photos> FindUserPhotos(string userlogin)
        {
            return from m in db.photos
                   where m.userlogin == userlogin
                   select m;
        }

如何从DB中获取Random 10行?

2 个答案:

答案 0 :(得分:4)

我总是使用此方法获取自定义实体OrderBy(x =&gt; Guid.NewGuid())

public photos Find10RandomUserPhotos(string userlogin)
{
   return db.photos.Where(x => x.userlogin == userlogin).OrderBy(x => Guid.NewGuid()).Take(10).ToList();
}    

答案 1 :(得分:0)

关注Random row from Linq to Sql

public photos FindRandomUserPhoto(string userlogin)
{
   var qry = FindUserPhotos(userlogin);
   int count = qry.Count();
   int index = new Random().Next(count);
   return qry.Skip(index).FirstOrDefault();
}

public Array<photos> Find10RandomUserPhotos(string userlogin)
{
   var result = New Array<photos>;
   for (i = 0; i < 10; i++) {
      result.add(FindRandomUserPhoto(userlogin));
   }
   return result
}