假设我有这个视图模型:
public class MyModel { [Range(0, 999, ErrorMessage = "Invalid quantity")] public int Quantity { get; set; } }
现在,对于此模型的特定实例,有效值的范围将更改:某些可能不会为0,有些可能不会高于5.有效范围的最小值/最大值来自数据库,可以随时更改.
如何动态更改RangeAttribute的最小/最大属性?或者它是验证我的场景的最佳方式?
我在 Azure 中有一个资源组 (RG)。我是订阅管理员,在 RG 中我的角色是所有者。我还有另外两个分配给这个 RG 的用户,他们的角色也是所有者。
我可以毫无问题地在 RG 中创建任何资源。其他 2 个用户不能。例如,当他们尝试添加 SQL Server 资源时,我们告诉他们“订阅无权注册资源提供程序:Microsoft.Sql”。
问题:是否可以授予那些非订阅管理员用户在 RG 中创建资源的权限,或者这是只有订阅管理员才能执行的操作?
每次执行时,此查询需要200多毫秒:
{
"filter": {
"term": {
"id": "123456",
"_cache": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
但每次在第一次查询后执行时,这个只需要2-3毫秒:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"term": {
"id": "123456"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意两个查询中的相同ID值.看起来第二个查询使用第一个查询的缓存结果.但为什么第一个查询不能使用缓存结果本身呢?"_cache" : true
从第一个查询中删除不会改变任何内容.
当我用其他ID执行第二个查询时,第一次执行它需要大约40毫秒,之后每次需要2-3毫秒.因此,第二个查询不仅工作得更快,而且还缓存结果并将缓存用于后续调用.
所有这些都有解释吗?
现在尝试对查询结果进行排序.以下两个查询都不起作用:
{
"sort": [
{
"name": {
"order": "asc"
}
}
],
"query": {
"match_all": {}
}
}
{
"query": {
"match_all": {}
},
"sort": [
{
"name": {
"order": "asc"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
根据(文件),即使它们似乎有效.我在这里错过了什么?顺便说一下,查询部分的顺序在Elastic中是否重要?