ServiceStack AutoQuery和现场任期或



我正在尝试更改自动上的一些字段以使用或(这是一个搜索许多字段的搜索框)。尽管应该根据文件,但这似乎不起作用。

public class PropertyGet : QueryDb<DomainModel.Property>
{
    [QueryDbField(Term=QueryTerm.Or)]
    public string NameContains { get; set; }
    [QueryDbField(Term=QueryTerm.Or)]
    public string CityContains {get;set;}
}

但这确实是:

[QueryDb(QueryTerm.Or)]
 public class PropertyGet : QueryDb<DomainModel.Property>
    {
        public string NameContains { get; set; }
        public string CityContains {get;set;}
    }

更改查询行为

默认查询像过滤器一样起作用,每个条件都结合在一起 使用和布尔术语进一步过滤结果集。这可以 通过指定更改为在现场级别上使用或使用 term = queryterm.或修改器,例如:

[querydbfield(term = queryterm.or)] 公共字符串lastname {get;放;}

如何进行字段级别或查询?

问题是由于使用依赖于"%cant"的隐式约定的 [QueryDbField]

public class PropertyGet : QueryDb<DomainModel.Property>
{
    [QueryDbField(Term=QueryTerm.Or)]
    public string NameContains { get; set; }
    [QueryDbField(Term=QueryTerm.Or)]
    public string CityContains {get;set;}
}

在使用[QueryDbField]时,您将覆盖隐式约定。我已经更改了此提交中的行为,现在它合并了[QueryDbField]和匹配的隐式约定的行为,因此您的查询现在应该按预期工作。

此更改可从v4.5.7 获得。

现在可用

最新更新