1

我们有一些使用 Ormlite/Servicestack 构建的服务,我们主要使用QueryData自定义逻辑提取数据库对象和 POCO。

但是,我们有一个表,它确实不需要在逻辑上进行扩展,并且可以很好地使用 AutoQuery 和 URL 参数直接从前端查询数据库。但是,此表包含一个isDeleted用于跟踪软删除的列。前端不应该有任何软删除的项目,我们认为前端不应该能够获取这些记录(即不应该负责使用 a 查询 API ?&isDeleted=false)。

因此,鉴于我们当前的设置:

[Route("/query/thing/stuff", HttpMethods.Get)]
public class secret_table: QueryDb<secret_table>
{
}

...是否可以为QueryDb<>自动排除记录在哪里实施过滤器isDeleted=true?这是否只能应用于此表/类?

我正在准备牛奶和饼干,希望mythz 路过并留下礼物……当然,感谢您的帮助!

4

1 回答 1

1

您是否尝试过使用不同的可扩展性选项之一?

您还应该能够使用OrmLite 的 Select Filter 来启用 Soft Deletes,例如:

SqlExpression<secret_table>.SelectFilter = q => q.Where(x => x.IsDeleted != true);

请注意,您的 AutoQuery DTO 不应重用表的名称作为 DTO 的名称,请使用不同的名称,例如:

[Route("/query/thing/stuff", HttpMethods.Get)]
public class QuerySecretTable: QueryDb<secret_table> {}
于 2017-08-03T22:21:36.557 回答