DateTime 属性的 ValueFilter

ValueFilter for DateTime Attributes

我正在使用博客应用,我了解了如何使用可视化查询设计器按年份筛选博客帖子。我使用具有年份和 ValueFilter 的查询字符串值,我的属性如下: 属性:PublicationMoment 值:[QueryString:year]-01-01 和 [QueryString:year]-12-31 运算:介于

之间

如果这些值是通过查询字符串参数传递的,我将如何获取特定月份和年份的帖子。因为一年中的月份有不同的天数,所以我不确定您将如何在 ValueFilter 的 Value 字段中完成此操作。目前我正在传递 2 位数的月份作为参数。

我试过类似的东西:[QueryString:year]-[QueryString:month] 操作:包含 但是上面的操作并没有真正起作用,因为数据类型是 DateTime 对象。

我可以在 razor 视图中执行此操作,但我担心分页数据源中的页面太多,因为它将基于查询字符串中传递的给定年份的较大帖子子集参数.

有什么方法可以用过滤器做到这一点吗?

基本上日期还没有完美处理,但是有几种方法可以使用可视化查询来完成:

  1. [QueryString:Start] and [QueryString:End] 之间的查询中使用正确的日期,并计算生成链接的正确日期
  2. 由于 "between" 过滤器的主要问题实际上是它也包括最后一天,您还可以使用两个过滤器,一个 >= 第一个日期和另一个 < 第二个日期,所以第一个-日期将是 year/month 和第 1 天;第二个也是年月日1

最后但并非最不重要的一点:如果您使用 Razor 和 LINQ 执行此操作,则不应 运行 遇到任何性能问题 - 从技术上讲,这与管道所做的事情相同,并且已经过测试,可以在数十种情况下表现良好数千条记录。