如何使用DocumentClient创建带PartitionKey的CosmosDB集合?
在DocumentClient中创建带分区键的Cosmos DB集合
嗨,我来帮你搞定这个问题!你当前的代码已经完成了大部分工作,只需要在DocumentCollection实例里添加分区键的定义即可——这和你在模拟器里指定属性名的逻辑是一致的,只是代码里需要用PartitionKeyDefinition来明确配置。
修改后的完整代码
await client.CreateDocumentCollectionAsync( UriFactory.CreateDatabaseUri(databaseId), new DocumentCollection { Id = collectionId, // 这里添加分区键配置 PartitionKey = new PartitionKeyDefinition { Paths = new System.Collections.ObjectModel.Collection<string> { "/你的属性名" } } }, new RequestOptions { OfferThroughput = 1000 } );
关键细节说明
- 把
/你的属性名替换成你实体类里实际要作为分区键的属性路径,比如你的实体有个UserId属性,就写"/UserId"——这个路径的格式和你在Cosmos DB模拟器里输入的属性名对应,只是需要加上前缀/。 PartitionKeyDefinition.Paths是一个集合,因为Cosmos DB支持复合分区键(不过大部分场景用单分区键就够了)。- 分区键一旦创建就无法修改,所以确定好之后再执行创建操作哦。
额外提示
如果你之后打算升级到新的Cosmos DB SDK(Microsoft.Azure.Cosmos NuGet包),写法会更简洁,但针对你现在用的DocumentClient(旧SDK),上面的代码完全可以解决问题。
内容的提问来源于stack exchange,提问作者Larry R
相关产品推荐
相关产品推荐

