我正在使用 Linqpad 连接到 Entity Framework 来形成我的 Linq 查询,它非常适合在无需运行应用程序的情况下查看结果。无论如何,我有一个事件表,它连接到一个 EventStudent 表。EventStudent 表将有每个事件的 0 到多条记录。我想返回事件日期和标题以及参加的学生人数。EventStudent 表包含学生以及布尔“参加”字段。
通过这个查询,我得到了每个事件的所有事件数据和所有学生数据——这很好!
from ev in Events.Include("EventStudents")
where (ev.StartDate >= new DateTime(2012, 7, 1) && ev.StartDate <= new DateTime(2013, 6, 30))
orderby ev.StartDate descending
select ev
我想要的是事件信息和参加的学生的 COUNT,所以我可以将其绑定到网格。这是我尝试过的:
from ev in Events.Include("EventStudents")
where (ev.StartDate >= new DateTime(2012, 7, 1) && ev.StartDate <= new DateTime(2013, 6, 30))
orderby ev.StartDate descending
select new { ev.EventID, ev.StartDate, ev.Title, ev.EventStudents.Count() }
但我得到一个错误“匿名类型成员声明符必须是简单的名称......”。好的,但是,我怎样才能让我的事件数据和学生人数都在一种类型中绑定到我的网格?如果它很重要 - 网格有一个“选择”列,这就是包含事件 ID 的原因 - 它将隐藏在网格中。此外,网格将具有排序和过滤功能。而且......我怎样才能从 Linq 查询中返回日期,只有日期(没有时间?)。
谢谢!