所以我最近開始檢查ASP.NET MVC3和EFCodeFirst並且陷入了困境。 我有2種型號: 人:從連接表中獲取計數 - EFCodeFirst
[Bind(Exclude = "PersonID")]
public class Person {
public int PersonID { get; set; }
[Required(ErrorMessage="Given name is a required field")]
[DisplayName("Given name")]
public string GivenName { get; set; }
[Required(ErrorMessage="Family name is a required field")]
[DisplayName("family name")]
public string FamilyName { get; set; }
[Required(ErrorMessage = "Birthdate is a required field")]
[DisplayFormat(DataFormatString = "{0:d}")]
public DateTime Birthdate { get; set; }
[DisplayName("Ingredient")]
public virtual Ingredient Ingredient { get; set; }
}
和配料:
public class Ingredient {
public int IngredientID { get; set; }
[Required(ErrorMessage = "Ingredient is a required field")]
public string Name { get; set; }
public virtual ICollection<Person> Persons { get; set; }
}
現在問題是,成分是半固定表(僅企業用戶可以添加的成分,但是這是一個不同的故事),並且一個人可以輸入他/她的數據和他/她最喜歡的成分。 這一切都正常,但我想通過加入2個表格,然後按順序,計數和限制(以10爲例)創建一個前10個成分。
這裏的問題是,我已經嘗試了幾件事情,只是不能得到它的工作。我對LINQ相當陌生,無法理解如何做到這一點。
任何建議將不勝感激!
編輯: 要指定一次,我只需要下面的查詢在LINQ相當於:
SELECT i.name, COUNT(p.Ingredient_IngredientID) AS Total
FROM People p, Ingredients i
WHERE p.Ingredient_IngredientID = i.IngredientID
GROUP BY i.name
ORDER BY total DESC;
+1我沒有注意到他沒有說明從Ingredient到Person的導航。 – Euphoric 2011-04-17 16:58:38
正是我想要的,謝謝! – Fverswijver 2011-04-17 17:39:10
說得太快,顯然它*有點*的作品,但只是給了我一份重複每一種成分的清單。即: - 番茄 - 沙拉 - 蘋果 - 番茄 – Fverswijver 2011-04-18 19:52:11