Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅包含某些索引的Cosmos Db集合_C#_Azure Cosmosdb - Fatal编程技术网

C# 仅包含某些索引的Cosmos Db集合

C# 仅包含某些索引的Cosmos Db集合,c#,azure-cosmosdb,C#,Azure Cosmosdb,我试图排除所有,并仅包括CosmosDb中某个集合上的某些索引 这是我的密码: // A property in the class... public override IEnumerable<IncludedPath> CollectionIndexes => new List<IncludedPath> { new IncludedPath{ Path= "/\"CreatedOnUtc\"" }, // I have tried "/Create

我试图
排除
所有,并
仅包括CosmosDb中某个集合上的某些索引

这是我的密码:

// A property in the class...
public override IEnumerable<IncludedPath> CollectionIndexes => new List<IncludedPath>
{
     new IncludedPath{ Path= "/\"CreatedOnUtc\""  }, // I have tried "/CreatedOnUtc" as well
     // few more indexes...    
};

// Code in the CreateCollection method...
collection.IndexingPolicy.ExcludedPaths.Add(new ExcludedPath { Path = "/*" }); // I have tried the code without this line as well
foreach (var path in CollectionIndexes) // Add indexes over certain properties only.
{
     collection.IndexingPolicy.IncludedPaths.Add(path);
}
//类中的属性。。。
公共覆盖IEnumerable CollectionIndex=>新列表
{
新建IncludedPath{Path=“/\”CreatedOnUtc\”“},//我也尝试了“/CreatedOnUtc”
//没有更多的索引。。。
};
//CreateCollection方法中的代码。。。
collection.IndexingPolicy.ExcludedPaths.Add(新的ExcludedPath{Path=“/*”});//我也尝试过没有这行代码的代码
foreach(CollectionIndex中的var path)//仅在某些属性上添加索引。
{
collection.IndexingPolicy.includedPath.Add(路径);
}
当我运行代码时,每次都会遇到这样的异常:

消息:{“Errors”:[“索引路径'/\“CreatedOnUtc\””无法找到 已接受,位置“5”附近失败。请确保路径为 有效路径。常见错误包括无效字符或缺少 标签周围的引号。“]}ActivityId: 2627fe24-64a0-46b3-bf9a-13cb160c17a7,请求URI: /apps/DocDbApp/services/DocDbMaster0/partitions/780e44f4-38c8-11e6-8106-8cdcd42c33be/replications/1p/, RequestStats:,SDK:Microsoft.Azure.Documents.Common/1.22.0.0, documentdb dotnet sdk/1.22.0主机/64位 MicrosoftWindowsNT/10.0.16299.0

当我将路径更改为
“/CreatedOnUtc”
时,仍然可以看到相同的消息:

消息:{“Errors”:[“无法接受索引路径'/CreatedOnUtc', 位置“3”附近失败。请确保路径是有效路径。 常见错误包括无效字符或缺少引号 标签。“]}ActivityId:30dc7429-df87-4080-912e-60aa731ae809,请求 URI: /apps/DocDbApp/services/DocDbMaster0/partitions/780e44f4-38c8-11e6-8106-8cdcd42c33be/replications/1p/, RequestStats:,SDK:Microsoft.Azure.Documents.Common/1.22.0.0, documentdb dotnet sdk/1.22.0主机/64位 MicrosoftWindowsNT/10.0.16299.0

我错过了什么?这似乎是一些非常基本的东西,但我已经浪费了24小时在这个尝试各种组合


我正在使用C#Sql API来实现这一点。我正在本地PC上的
CosmosDb Emulator
上尝试此操作。

看起来您缺少索引路径末尾必需的通配符

索引路径末尾的
字符是用于查询此属性的查询所必需的。如果计划查询此路径的属性的子属性,则应使用字符
*


您可以在

上了解更多信息。看起来您缺少索引路径末尾的必要通配符

索引路径末尾的
字符是用于查询此属性的查询所必需的。如果计划查询此路径的属性的子属性,则应使用字符
*


您可以在

上了解更多关于这方面的信息,您为什么要做
“/\”id\”
,而不仅仅是
“/id”
?我也尝试过
“/id”
。我没有看到您在示例中指定索引类型。我说的是这样的:
index=newcollection{newrangeindex(DataType.String){Precision=20}}}我想我也试过了,我会再试一次,然后回到这里,我看到你有绝对路径。您是否尝试在结尾添加所需的特殊字符?例如,
CreatedOnUtc
的路径应该是
/CreatedOnUtc/?
为什么要执行
“/”id\”
,而不仅仅是
“/id”
?我也尝试了
“/id”
。我看不到您在示例中指定了索引类型。我说的是这样的:
index=newcollection{newrangeindex(DataType.String){Precision=20}}}我想我也试过了,我会再试一次,然后回到这里,我看到你有绝对路径。您是否尝试在结尾添加所需的特殊字符?例如,
CreatedOnUtc
的路径应该是
/CreatedOnUtc/?
谢谢!我看过很多文章和视频;但是我想知道我怎么会错过了
谢谢!我看过很多文章和视频;但我想知道我怎么会错过了