ServiceStack AutoQuery - 在可为空的DateTime字段中检查null

时间:2017-12-04 13:19:36

标签: rest datetime null servicestack

我使用ServiceStack autoquery来加载信息。我有一个类似这样的课程:

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。

1 个答案:

答案 0 :(得分:2)

使用ServiceClient无法发送null值。 nulldefault(DateTime?)表示无值,因此没有&#34; null过滤器&#34;发送和您的查询是相同的,并且与发送空QueryItem DTO无法区分。

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

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