AutoQuery / Ormlite-servicestack:我可以过滤掉 QueryDb class 上的软删除吗?
AutoQuery / Ormlite-servicestack: Can I filter out soft deletes on a QueryDb class?
我们有一些使用 Ormlite/Servicestack 构建的服务,我们主要使用 QueryData
和自定义逻辑提取数据库对象和 POCO。
但是,我们有一个 table 实际上不需要在逻辑上进行扩展,并且可以使用 AutoQuery 和 URL 参数直接从前端查询数据库。但是,此 table 包含一个 isDeleted
列来跟踪软删除。前端不应该有任何软删除的项目,我们认为前端不应该能够获得这些记录(即不应该负责查询 API 和 ?&isDeleted=false
) .
因此,鉴于我们当前的设置:
[Route("/query/thing/stuff", HttpMethods.Get)]
public class secret_table: QueryDb<secret_table>
{
}
...是否可以为 QueryDb<>
实施过滤器以自动排除 isDeleted=true
的记录?这是否只能应用于此 table/class?
我正在准备牛奶和饼干,希望 mythz 顺便过来留下礼物...当然,我们将不胜感激!
您是否尝试过使用其中一种不同的 extensibility options?
您应该也可以使用 OrmLite's Select Filter to enable Soft Deletes,例如:
SqlExpression<secret_table>.SelectFilter = q => q.Where(x => x.IsDeleted != true);
请注意,您的 AutoQuery DTO 不应重复使用 Table 的名称作为 DTO 的名称,请使用不同的名称,例如:
[Route("/query/thing/stuff", HttpMethods.Get)]
public class QuerySecretTable: QueryDb<secret_table> {}
我们有一些使用 Ormlite/Servicestack 构建的服务,我们主要使用 QueryData
和自定义逻辑提取数据库对象和 POCO。
但是,我们有一个 table 实际上不需要在逻辑上进行扩展,并且可以使用 AutoQuery 和 URL 参数直接从前端查询数据库。但是,此 table 包含一个 isDeleted
列来跟踪软删除。前端不应该有任何软删除的项目,我们认为前端不应该能够获得这些记录(即不应该负责查询 API 和 ?&isDeleted=false
) .
因此,鉴于我们当前的设置:
[Route("/query/thing/stuff", HttpMethods.Get)]
public class secret_table: QueryDb<secret_table>
{
}
...是否可以为 QueryDb<>
实施过滤器以自动排除 isDeleted=true
的记录?这是否只能应用于此 table/class?
我正在准备牛奶和饼干,希望 mythz 顺便过来留下礼物...当然,我们将不胜感激!
您是否尝试过使用其中一种不同的 extensibility options?
您应该也可以使用 OrmLite's Select Filter to enable Soft Deletes,例如:
SqlExpression<secret_table>.SelectFilter = q => q.Where(x => x.IsDeleted != true);
请注意,您的 AutoQuery DTO 不应重复使用 Table 的名称作为 DTO 的名称,请使用不同的名称,例如:
[Route("/query/thing/stuff", HttpMethods.Get)]
public class QuerySecretTable: QueryDb<secret_table> {}