关于linq select join的问题

时间:2011-02-13 14:09:19

标签: linq

我想列出所有尚未支付课程费用的学生 即,当点击学生时,按月列出所有未决费用。

这是我到目前为止所做的事情。
这些都是学生的活跃课程。

以下是学生支付给他们课程的付款记录。 enter image description here
现在我想列出所有未付的foreach学生 例如该课程的最后一次付款是在2011年11月2日。如果日期时间现在是五月,那么我想将待处理的金额显示为
月份数量 3月100日 4月200日 5月400日

这就是我试过的......

foreach (var result in activeCourses)
{
    //Show all the pending paid coures from dateJoin till datetime.Now
    DateTime JoinedDate = Convert.ToDateTime(result.cus.Date);
    for (DateTime d = JoinedDate; d.Month <= DateTime.Now.Month; d = d.AddMonths(1))
    {
        Payment payment = new Payment();

        payment.Course.Id = result.c.Id;
        payment.Course.Name = result.c.Name;
        payment.Course.Fee = result.c.Fee;
        payment.CourseByStudent.CourseUserStatus.Date = result.cu.Date;
        payment.CourseByTutor.TutorId = result.t.TutorId;
        payment.User.Name = result.u.Name;

        payment.MonthId = d.Month;
        payment.MonthToPay = d.ToString("MMM");
        output.Add(payment);
    }
}


如果学生没有为他的课程支付任何费用,上面给出的逻辑似乎没有效率,那么我必须检查自他的第一个JoinedDate以来的待付款。其他我需要根据特定课程从付款表中的DateIssue检查待付款。请提出建议谢谢

1 个答案:

答案 0 :(得分:0)

我将使用相同的方法来显示延迟付款。

  for (DateTime d = lastPaidDate.AddMonths(1); d.Month <= DateTime.Now.Month; d = d.AddMonths(1)) 

谢谢