2014-01-15 22 views
0

今天我慢如何使用随机行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"; 

我在做什么错?

回答

3

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

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

  • 你正在计算项目与x.Garden != null条件,但采取从所有的孩子。
  • Take返回IEnumerable<T>即使您指定它只返回1项目,您应该也可以使用First

我觉得你k应该是

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