我有一个对象模型,我希望用linq查询填充它。
MyModel{
DateTime AppointDate {get; set;}
int TotalAppoints {get; set;}
int AppointDuration {get; set;}
}
我正在编写的查询返回特定日期的约会计数,并且在一个函数中,该函数接收UserID和日期作为参数。 MyDC是数据上下文。
到目前为止,这就是我所拥有的:
var Output = from a in MyDC.AppointTable
where a.UserID == TheUserID
where a.Date == TheDate.Date
select new MyModel
{
AppointDate = ?,
TotalAppoints =?,
AppointDuration = ?
};
现在,我已经尝试过一些东西,但它没有回复预期的东西。当我写a.Count()时,我没有得到计数。每个约会都有一个int,用于存储该约会的分钟数; TotalAppoints应该是约会的数量,而AppointDuration应该包含在约会中花费的所有会议记录的数量。感谢您的投入。
答案 0 :(得分:3)
您要做的是按字段对数据进行分组,并将值与值相加
var out = from a in MyDC.AppointTable
where a.UserID == TheUserID
where a.Date == TheDate.Date
group a by a.Date into g
select new MyModel {
AppointDate = TheDate.Date,
TotalAppoints = g.Count(),
AppointDuration = g.sum( x => x.AppointDuration )
};