[英]Query Only the Highest Value of the Votes
//query the list of winners of the said event
public ActionResult List_of_Winners(int id=0) {
var winners = (from cat in db.Events_Category_tbl
join can in db.Candidates_Info_tbl on cat.events_category_id equals can.events_category_id
where cat.events_info_id == id
select new Candidates
{
events_category_name = cat.events_category_name,
candidates_fullname = can.candidates_fullname,
candidates_info_id = can.candidates_info_id,
events_category_id = cat.events_category_id,
no_of_votes = can.no_of_votes.Value
}).Take(1).OrderBy(x=>can.no_of_votes);
return PartialView(winners);
}
在此代碼中,Iam計划在每個類別中獲得最高的no_of_votes。 但是,我對此有一個錯誤。 如何查詢數據庫以獲取所需的數據?
這是顯示的錯誤:“名稱”可以“在當前上下文中不存在”
您需要將訂單移至有待取貨/取貨的地方,我相信這樣的方法應該可以工作:
var winners = from cat in db.Events_Category_tbl
from can in
(from c in db.Candidates_Info_tbl
where c.events_category_id == cat.events_category_id
select c).OrderByDescending(c => c.no_of_votes).Take(1)
where cat.events_info_id == id
select new Candidates
{
events_category_name = cat.events_category_name,
candidates_fullname = can.candidates_fullname,
candidates_info_id = can.candidates_info_id,
events_category_id = cat.events_category_id,
no_of_votes = can.no_of_votes.Value
};
對於類似的關系,可能會起作用(應該返回每個類別中得分最高的每個人):
var winners = from cat in db.Events_Category_tbl
from max_votes in
(from c in db.Candidates_Info_tbl
where c.events_category_id == cat.events_category_id
select c.no_of_votes).OrderByDescending(c => c).Take(1)
join can in db.Candidates_Info_tbl on cat.events_category_id equals can.events_category_id
where cat.events_info_id == id && can.no_of_votes == max_votes
select new Candidates
{
events_category_name = cat.events_category_name,
candidates_fullname = can.candidates_fullname,
candidates_info_id = can.candidates_info_id,
events_category_id = cat.events_category_id,
no_of_votes = can.no_of_votes.Value
};
我想也可以使用GroupBy或不同樣式的內部查詢來完成,但是“從x in(從z中的y,其中y.something = x.something選擇某物)。Take(n)”模式導致交叉/外部適用於SQL Server,在我所見過的大多數情況下,它似乎表現良好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.