问题标签 [autoquery-servicestack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
servicestack - AutoQuery:通过中间表连接表并定义要加入的 FK
我们最近开始使用 ServiceStack AutoQuery。这是一个不错的功能,我们非常喜欢它。我们有一个这样的表结构(缩小版以便于阅读):
所以理论上我们可以有这样的连接
但是在这种特定情况下,如果我们通过 Department.ActiveManagerId = Manager.Id 从 Department 加入到 Manager 将不会产生正确的结果,因为 Department.ActiveManagerId 是一个快捷方式,是为其他场景设计的。
所以当我像这样定义 AutoQuery
下面的 SQL 由 AutoQuery 生成,从 ServiceStack AutoQuery 的角度来看是正确的。
但相反,我们希望能够生成如下所示的 SQL
c# - 对未实现 IConvertible 的值类型使用 ServiceStack 自动查询
我试图将AutoQuery与NodaTime.LocalDate
查询参数一起使用,当我尝试使用该日期字段进行过滤时出现以下异常,特别>MyDate=2020-01-01
是(排序不受影响):
我将其追踪到使用because is a而不是a 的这行代码:Convert.ChangeType(...)
NodaTime.LocalDate
struct
enum
我正在使用我的NodaTime ServiceStack序列化库,所以TypeSerializer.DeserializeFromString(strValue, fieldType)
在这种情况下,我真正想要的行为是。
我看到的解决方法是:
- 在查询字符串中使用
MyDateDateBetween=2020-01-01,9999-12-31
,因为该代码路径使用我指定的自定义序列化(繁琐) - 使用
DateTime
代替NodaTime.LocalDate
(我想使用NodaTime.LocalDate
) - 不使用 AutoQuery(我想)
NodaTime.LocalDate
实现IConvertible
(不太可能)
是否有另一种方法可以让自动查询过滤器与未实现的值类型一起使用IConvertible
?
c# - 您可以禁用 ServiceStack AutoQuery 的计数(总计)吗?
我针对两个大约 130 万行的表的简单连接设置了 AutoQuery。使用内置的迷你分析器来测量 SQL 计时,返回前 100 行(无过滤)的查询需要 3 毫秒,而计数需要额外的 341 毫秒。
是否可以在不获取计数的情况下使用 AutoQuery?我实际上不需要知道完整的计数。
编辑
所以我在想,找出剩余的行数和完整的行数是否会更快。我使用 SSMS 对我们的 MSSQL 数据库进行了测试。
输出:
c# - Servicestack - 使用自动查询 rdbms API 的 OR 运算符
有没有办法在查询中使用 OR 运算符。我知道[QueryDbField(Term=QueryTerm.Or)]
可以使用修饰符,但这总是会改变属性的行为。也许有时我需要用 AND 查询,有时我需要用 OR 查询,使用相同的字段。就像是
状态 = la AND 金额 = 1000 或总金额 = 1000
变得
{url}?state=la&amount=1000& OR totalamount=1000
kendo-grid - 将请求转换为自动查询友好
我们正在使用内置分页/排序/过滤的第 3 方网格(telerik kendo)。它会在进行 GET 调用时以某种方式发送请求,我正在尝试确定是否有翻译方法这些请求对 AutoQuery 友好的请求。
查询字符串参数
排序模式:
过滤:
所以这是在查询字符串中填充的:
需要翻译成。
我应该通过删除过滤器(或者只是添加我需要的过滤器)来操作插件中的查询字符串对象吗?这里有更好的选择吗?
我不确定在剑道方面是否有一种干净的方法可以做到这一点。
javascript - ServiceStack AutoQuery 手动发送过滤器
我们正在尝试使用 JsonServiceClient 手动构造自动查询请求。对于大多数操作,代码非常简单,但我看不到过滤器是如何应用的:
我没有看到如何发送过滤器?
下面是 QueryBase 的实现:
最后,javascript/typescript 客户端是否有 ToPostUrl/ToGetUrl 的模拟?
servicestack - ServiceStack OrmLite 自动查询过滤器
以下是否可行: ?OpensContains=Something
通过查询数据库上的名称列?它没有,我不确定为什么不呢?
?NameContains=Something
确实有效,该列存在,我假设我可以向请求对象添加一个不同的属性,该对象将使用包含查询相同的字段。
servicestack - ServiceStack 自动查询和字段术语或
我正在尝试更改自动查询上的一些字段以使用或进行查询(它是一个搜索许多字段的搜索框)。尽管根据文档应该这样做,但这似乎不起作用。
但是,这样做:
更改查询行为
默认情况下,查询就像一个过滤器,每个条件都与 AND 布尔项组合以进一步过滤结果集。通过指定 Term=QueryTerm.Or 修饰符,可以将其更改为在字段级别使用 OR,例如:
[QueryDbField(Term=QueryTerm.Or)] public string LastName { get; 放; }
如何进行字段级别或查询?
servicestack - 需要 AutoQuery 洞察力
所以,我正在使用 ServiceStack 并喜欢它提供的东西。我们已经到了需要实现可查询数据 API 的地步……在我进入这个项目之前,已经完成了半支持的 OData 实现。我宁愿不尝试通过它来使其工作。
这让我想到了 AutoQuery。我想试试我们的 SQL Server 数据库。我正在查看http://docs.servicestack.net/autoquery-rdbms上的示例- 但我一辈子都无法让它发挥作用。我在这里缺少什么吗?
我正在使用 ORMLite 来查询 SQL,并且我编写的集成测试表明它可以按预期工作。我已经在容器中注册了 OrmLiteConnectionFactory,以及我的存储库,它通过依赖注入的方式使用它。
到目前为止,具体到代码,我有一个类型和一个基于 QueryDb 的消息:
我的服务使用消息 DetailQuery:
通过所有这些,我可以在管理界面中看到 AutoQuery 服务实例。当我使用查询界面时,我点击了我的服务端点,我看到了我期望的数据——过滤“Div”和“Reg”集合中的值。我在这里“正常工作”缺少什么?我在 ServiceStack 中做了大量工作,从服务本身访问我的存储库,但我正试图深入了解 AutoQuery 在这里带来了什么。我还没有看到一个“直截了当”的例子来说明它是如何工作的……还是我在寻找一桶不存在的金子?