我正在使用LINQ to Entities。
我有一张名为Student的表格,它有ID和Name两列。ID是主键。
我想选择学生的姓名,并得到具有相同姓名的学生数量。
例如,我的表格数据如下所示:
ID Name
1 Bob
2 Will
3 Bob
执行查询后,我将返回一个类似于以下的学生对象列表。
Name Quantity
Bob 2
Will 1
我猜这有点类似于stackoverflow的标签页面;它有名称和数量。
总之,我创建了一个叫做Student.cs的部分类,在其中添加了一个名为Quantity的属性,如下所示。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MySite.Models
{
public partial class Student
{
private int _quantity;
public int Quantity
{
get { return _quantity; }
set { _quantity = value; }
}
}
}
我想到了这个,但是我遇到了一个错误...
public IQueryable<Student> FindStudentsDistinctWithQuantity()
{
/*SELECT Name, COUNT(Name) AS Quantity
FROM Student
GROUP BY Name*/
var students= (from s in db.Students
group s by s.Name into g
select new {Name = g.Key, Quantity = g.Count()});
return students;
}
我收到的错误信息大致是“无法将匿名类型转换为学生列表类型”。这是否与我在部分类中添加的数量字段未被识别有关呢?
谢谢!
IQueryable<Student> = (from ...
,您会更快地找到问题所在。 - user24359