AutoQuery 无法查询嵌套对象

AutoQuery can't query nested object

AutoQuery 找不到字段

我有以下课程:

[Route("/query/domains")]
public class QueryDomains : QueryDb<Domain, DomainList>
{
    public int MajesticApiDataTF { get; set; }
}

public class DomainList
{
    public string DomainName { get; set; }
    public int MajesticApiDataTF { get; set; }
}

[Route("/domain/{Id}")]
public class Domain : IReturn<DomainResponse>
{
    [AutoIncrement]
    public int Id { get; set; }

    [Index(Unique = true)]
    [StringLength(70)]
    public string DomainName { get; set; }  

    [Reference]
    public MajesticApiData MajesticApiData { get; set; }

}

public class MajesticApiData
{
    [AutoIncrement]
    public int Id { get; set; }
    public int TF { get; set; }
    [ForeignKey(typeof(Domain), OnDelete = "CASCADE")]
    public int DomainId { get; set; }
}

当我尝试像这样通过 TF 在 AutoQuery 查看器中查询时:

http://localhost:5000/query/domains?MajesticApiDataTF%3E=1&MajesticApiDataTF%3E=1

所有域结果未经过滤返回,每个 TF 值显示 0。

我尝试添加 IJoin:

public class QueryDomains : QueryDb<Domain, DomainList>, IJoin<Domain, MajesticApiData>

但是后来查询returns没有结果。

我已经检查过数据库,TF 确实有一个值。我正在使用 PostgreSql 提供程序。

我希望它显示 TF 值并且可以过滤。我做错了什么?

编辑:

好的,问题似乎是不支持大于运算符。

如果我这样做:

query/domains?MajesticApiDataTF>5&include=Total

然后调试输出显示

2018-07-07 01:54:00.1555||DEBUG|OrmLiteReadCommandExtensions|SQL: SELECT COUNT(*) "COUNT(*)"
FROM "domain" INNER JOIN "majestic_api_data" ON
("domain"."id" = "majestic_api_data"."domain_id")
WHERE "majestic_api_data"."tf" = :0
PARAMS: :0=0

但如果我这样做:

query/domains?MajesticApiDataTF=5&include=Total

然后传了一个param值

2018-07-07 01:57:08.7809||DEBUG|OrmLiteReadCommandExtensions|SQL: SELECT COUNT(*) "COUNT(*)"
FROM "domain" INNER JOIN "majestic_api_data" ON
("domain"."id" = "majestic_api_data"."domain_id")
WHERE "majestic_api_data"."tf" = :0
PARAMS: :0=5

是否可以使用比连接的 属性 更大的 than/less?如果不是,我该如何在自己中添加它?

:修正

我将它设置为可为空的 int int? MajesticApiDataTF 然后它起作用了

如您所料,AutoQuery 不支持查询 nested/referenced 类型。

另外 Joins in AutoQuery need to follow the implicit Reference conventions 必须存在于被连接的 2 个表中,它们不会查询或更改引用数据的加载或过滤方式。

AutoQuery 仅允许您查询目标类型(在本例中为域),无法过滤加载的引用类型。