如何使用随机行linq请求

时间:2014-01-15 19:02:50

标签: linq

我今天很慢

有请求 “随便带孩子把它放到另一个花园里。”

我更改了代码,但是最后一行代码中的错误“不包含定义...而且没有扩展方法”:

var query = db.Child.Where(x => x.Garden != null); 
int count = query.Count(); 
int index = new Random().Next(count); 
var ch = db.Child.OrderBy(x => query.Skip(index).FirstOrDefault()); 
ch.Garden_Id = "1";

我做错了什么?

1 个答案:

答案 0 :(得分:3)

很难说出你做错了什么,因为你没有说出为什么你得到的结果不能让你满意。

但我可以看到两个可能的错误。

  • 您正在计算x.Garden != null条件的项目,但是要从所有孩子那里学习。
  • Take即使您指定它仅返回IEnumerable<T>项,也会返回1,您应该使用First代替。{/ li>

我认为您的k应该是

var k = db.Child.Where(x => x.Garden != null).Skip(rnd.Next(0,q)).First();