所以,我正在使用 ServiceStack 并喜欢它提供的东西。我们已经到了需要实现可查询数据 API 的地步……在我进入这个项目之前,已经完成了半支持的 OData 实现。我宁愿不尝试通过它来使其工作。
这让我想到了 AutoQuery。我想试试我们的 SQL Server 数据库。我正在查看http://docs.servicestack.net/autoquery-rdbms上的示例- 但我一辈子都无法让它发挥作用。我在这里缺少什么吗?
我正在使用 ORMLite 来查询 SQL,并且我编写的集成测试表明它可以按预期工作。我已经在容器中注册了 OrmLiteConnectionFactory,以及我的存储库,它通过依赖注入的方式使用它。
到目前为止,具体到代码,我有一个类型和一个基于 QueryDb 的消息:
public class Detail
{
public string Div { get; set; }
public string Reg { get; set; }
}
[Route("/report/detail")]
public class DetailQuery : QueryDb<Detail>
{
public string[] Div { get; set; }
public string[] Reg { get; set; }
}
我的服务使用消息 DetailQuery:
public class ReportService : Service
{
public object Get(DetailQuery dq)
{
// not sure what to put here?
}
}
通过所有这些,我可以在管理界面中看到 AutoQuery 服务实例。当我使用查询界面时,我点击了我的服务端点,我看到了我期望的数据——过滤“Div”和“Reg”集合中的值。我在这里“正常工作”缺少什么?我在 ServiceStack 中做了大量工作,从服务本身访问我的存储库,但我正试图深入了解 AutoQuery 在这里带来了什么。我还没有看到一个“直截了当”的例子来说明它是如何工作的……还是我在寻找一桶不存在的金子?