使用MyModel查询linq

时间:2011-03-27 04:14:37

标签: c# linq

我有一个对象模型,我希望用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应该包含在约会中花费的所有会议记录的数量。感谢您的投入。

1 个答案:

答案 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 )
            };