【发布时间】:2011-04-17 16:29:46
【问题描述】:
所以我最近开始检查 ASP.NET MVC3 和 EFCodeFirst,但遇到了问题。 我有 2 个模型: 人:
[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;
【问题讨论】:
标签: c# .net asp.net linq asp.net-mvc-3