我使用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。
答案 0 :(得分:2)
使用ServiceClient无法发送null
值。 null
值default(DateTime?)
表示无值,因此没有&#34; null过滤器&#34;发送和您的查询是相同的,并且与发送空QueryItem DTO无法区分。
您需要使用Custom AutoQuery Implementation或Customizable Query之类的:
[QueryDbField(Template = "{Field} IS NOT NULL", Field = "Birthday")]
public bool? BirthdayIsNotNull { get; set; }