2012-07-15 48 views
0

可能重复:
Random row from Linq to Sql新手需要帮助的随机记录

我是一个总的新手,当谈到.NET。我有这一行代码,它从包含指定系统名称的数据库中提取记录。我有可能使用相同的系统名称命名多个主题。

我期望的是一个随机选择一个主题,如果多个包含该系统名称的方法。如果只有一个存在,这将显示为现在。该工程拉动话题指定的系统名称的代码如下所示:

public virtual Topic GetTopicBySystemName(string systemName){ 
    if (String.IsNullOrEmpty(systemName)) return null; 
    var query = from t in _topicRepository.Table 
    where t.SystemName == systemName 
    select t; 
    return query.FirstOrDefault(); 
} 

什么我需要改变,以实现上述?

回答

0

不是在一台机器,我可以测试,但是:

Random random = new Random(); 
int count = query.Count(); 
if(count <= 1) return query.FirstOrDefault(); 
return query.Skip(random.Next(0, count)).First();