2011-12-15 142 views
1

隨機單個記錄使用ASP.Net MVC3用C#選擇控制器

我怎麼會去從我的數據庫中選擇一個隨機記錄?

這是我現在

CJAd cjad = db.CJAds.Single(c => c.category_id == 1 && c.ad_active == true); 
+0

,你喜歡你現在有代碼,因爲?.. – 2011-12-15 00:08:59

+1

你不需要做`&& c.ad_active ==真',只是'&& c.ad_active`就足夠了。 – 2011-12-15 00:12:08

回答

3
var selection = db.CJAds.Where(c => c.category_id == 1 && c.ad_active); 
CJAd cjad = selection 
    .OrderBy(c => c.id) 
    .Skip(new Random().Next(selection.Count())) 
    .First(); 
+0

這看起來不錯,在Visual Studio中不會出錯,但會引發此錯誤System.NotSupportedException:只有LINQ to Entities中的排序輸入支持「Skip」方法。方法'OrderBy'必須在方法'Skip'之前調用。 – 2011-12-15 00:16:19

0

林在移動設備上,從而不能檢查的代碼。這應該工作。

CJAd cjad = db.CJADs.Where(c => c.category_id == 1 && c.ad_active).OrderBy(c => Guid.NewGuid()).FirstOrDefault();