【问题标题】:ServiceStack AutoQuery - Check for null in nullable DateTime-fieldServiceStack AutoQuery - 检查可为空的日期时间字段中的空值
【发布时间】:2017-12-04 13:19:35
【问题描述】:

我使用 ServiceStack 自动查询来加载信息。我有这样的课:

public class QueryItem: QueryDb<Item>
{
    public string Name { get; set; }
    public DateTime? BirthdayNotEqualTo { get; set; }
}

正如documentation 中所写,我应该能够收到生日列中所有不为空的项目,如下所示:

QueryResponse<Item> item = jsonServiceClient.Get(new QueryItem {
    BirthdayNotEqualTo = null
});

但是,无论上面的空过滤器如何,我都会收到所有项目。我该如何改变呢?数据库中的值已正确设置为 null。

【问题讨论】:

  • 您能否编辑您的问题以引用您做出此假设的文档?

标签: rest datetime null servicestack


【解决方案1】:

无法使用 ServiceClient 发送 null 值。 null 值,如 default(DateTime?) 表示无值,因此没有发送“空过滤器”,您的查询与发送空 QueryItem DTO 相同且无法区分。

您需要使用Custom AutoQuery ImplementationCustomizable Query 之类的:

[QueryDbField(Template = "{Field} IS NOT NULL", Field = "Birthday")]
public bool? BirthdayIsNotNull { get; set; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2011-11-08
    • 1970-01-01
    • 2012-02-28
    • 2011-08-22
    • 2012-10-09
    • 2012-01-10
    相关资源
    最近更新 更多