LINQ to Entities无法识别方法'Int32 Next()'方法

时间:2016-05-11 17:35:34

标签: c# linq

我写这个方法:

 var resultVideos = (from video in db.Tbl_Videos
                            where channelName != "" ? video.Tbl_Categories.Tbl_Channels.Title.Equals(channelName) : true
                            select video)
                           .Where(video => categoryName != "" ? video.Tbl_Categories.Title.Equals(categoryName) : true)
                           .OrderBy(video => random.Next()).Take(8);

我知道提供者无法将它们转换为表达式树,所以我试试这个:

 .OrderBy(video => (int)random.Next()).Take(8);

但它不起作用,解决方案是什么?

1 个答案:

答案 0 :(得分:0)

可能值得一看下面的答案:

总结一下,您希望使用OrderBy(video => Guid.NewGuid())代替OrderBy(video => rnd )。但是,其他用户说这导致过滤在客户端完成,所以我会记住这一点!