1

我们有一些使用Ormlite/Servicestack构建的服务,我们主要使用带定制逻辑的QueryData来提取数据库对象和POCO。AutoQuery/Ormlite-servicestack:我可以过滤QueryDb类上的软删除吗?

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

因此,考虑到我们目前的设置:

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

...才有可能实现对QueryDb<>一个过滤器,isDeleted=true自动排除记录?而且这能够只适用于这个表/类吗?

我正在设置牛奶和饼干,希望mythz下降,留下一个礼物......但任何帮助,当然赞赏!

回答

0

您是否尝试过使用其中一种不同的extensibility options

你也应该能够使用OrmLite's Select Filter to enable Soft Deletes,如:

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

注意你的自动查询DTO不应该重用表作为DTO的名称的名称,使用不同的名称,如:

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

神话再次拯救。感谢您为社区所做的一切。 附注:我认为我昨天意外地在口袋里低估了你的意见,现在我的投票锁定在:(我会请一些同事帮助解决这个错误 – joh04667

相关问题