0

基本上我想要实现的是:

  • 如果输入起始日期,则日期 >= 起始日期
  • 如果输入了日期,则日期 <= 到日期
  • 如果两者都输入,则 date >= from date and date <= to date

所以在我的页面上,我有两个日期框,用户可以在其中选择一个日期和日期。问题是当我输入例如下面的内容时,我得到的项目实际上日期大于 2012 年 5 月 4 日,这不应该发生。我的起始日期似乎有效,但截止日期过滤器永远不会工作,因为它总是返回大于截止日期的结果。

if (finalApprovedFromDate != DateTime.MinValue)
{
    filteredClaims = filteredClaims.Where(cl => cl.claimStatus.Any(cs => cs.createdDate >= DateTime.Parse("05/03/2012"))).ToList();
}
if (finalApprovedToDate != DateTime.MinValue)
{
    filteredClaims = filteredClaims.Where(cl => cl.claimStatus.Any(cs => cs.createdDate <= DateTime.Parse("05/04/2012"))).ToList();
}

有任何想法吗?

4

1 回答 1

0

根据评论修改查询。这将仅返回 statusId 为 5 在 5/3 和 5/4 之间的声明状态的声明。

if (finalApprovedFromDate != DateTime.MinValue)
{
    filteredClaims = filteredClaims.Where(
        cl => cl.claimStatus.Any(
            cs => cs.statusId == 5 cs.createdDate >= DateTime.Parse("05/03/2012")
        )
    ).ToList();
}
if (finalApprovedToDate != DateTime.MinValue)
{
    filteredClaims = filteredClaims.Where(
        cl => cl.claimStatus.Any(
            cs => cs.statusId == 5 && cs.createdDate <= DateTime.Parse("05/04/2012")
        )
    ).ToList();
}
于 2012-05-08T04:35:54.733 回答