2011-04-27 79 views
0

尝试找到解决方案,但我不能。实体随机从数据库中选择C#MVC

所以问题是下一个。我有数据库的EDM模型。我有一个功能类来从数据库中获取数据。 这样的:

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

如何从数据库中获得随机10行?

+1

[从Sql的Linq随机行]的可能重复(http://stackoverflow.com/questions/648196/random-row-from-linq-to-sql) – 2011-04-27 16:32:48

回答

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 
} 
+1

如果这是一个骗局,不要发布链接作为答案...发表评论,而不是。 – 2011-04-27 16:32:32

+0

甚至更​​好,投票结束重复。 – 2011-04-27 16:33:55

+0

不知道如何投票做近..也许没有权限呢? – ariel 2011-04-27 16:36:21

4

我总是用这种方法获取自定义实体的OrderBy(X => Guid.NewGuid())

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