因此,我正在使用 ServiceStack,并且对它有所了解。我使用过 AutoQuery 并发现它在调用直接的“GET”消息时是必不可少的。不过我遇到了一个问题,我已经看了几个小时了。我希望这只是我忽略的东西。
我为我的 AutoQuery 消息设置了一个简单的类:
public class QueryCamera : QueryDb<db_camera>
{
}
我有一个 OrmLite 连接,用于从数据库中检索 db_camera 整体。这一切都很好。我不想从数据库中返回模型,但我想返回一个 DTO,我已将其定义为另一个类。因此,使用 QueryDb 的版本,我的请求消息现在是这样的:
public class QueryCamera : QueryDb<db_camera, Camera>
{
}
Camera 类是我的 DTO。调用仍然执行,但我没有得到任何结果。我在 db_camera 类上设置了一个映射器扩展方法 ToDto() 以返回一个 Camera 实例。
也许我只是习惯了 ServiceStack 让事情变得如此简单......但是我如何获得上面的 AutoQuery 请求来执行我的请求的映射?由于我指定了我想要的转换,数据检索现在对我来说是手动操作吗?那么这种类型的价值在哪里呢?现在我有责任查询数据库,然后在我的数据模型记录上调用 .ToDto() 以返回 DTO 对象吗?
编辑:我刚刚观察到的其他事情......我仍然从 AutoQueryViewer 中返回的数据集中获取行数,但字段名称是数据模型类 db_camera 而不是 Camera。