0

可能重复:
从 Linq 到 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();
}

我需要改变什么来实现上述目标?

4

1 回答 1

0

不是在我可以测试的机器上,而是:

Random random = new Random();
int count = query.Count();
if(count <= 1) return query.FirstOrDefault();
return query.Skip(random.Next(0, count)).First();
于 2012-07-15T15:44:09.873 回答