【发布时间】:2018-07-25 13:49:45
【问题描述】:
我正在尝试将数据从 Azure 函数输出到 CosmosDb (MongoDb),我有以下绑定设置:
[DocumentDB("mydatabase", "mycollection",
ConnectionStringSetting = "CosmosDBConnection",
CreateIfNotExists= true,
PartitionKey = "SomeKey")]
IAsyncCollector<MyEntity> mongoBinding,
在我的代码中,我执行以下操作:
var entity = new MyEntity() {SomeKey="X1CLX1010000002", Data = "somedata"};
await mongoBinding.AddAsync(entity);
public class MyEntity {
public string SomeKey {get; set;}
public string Data {get; set;}
}
导致错误:
{"Errors":["分区键组件定义路径'SomeKey' 无法接受,在位置“0”附近失败。分区键路径 必须仅包含有效字符且不包含尾部斜杠或 通配符。"]}
知道我做错了什么吗?
【问题讨论】:
-
您是否尝试在属性名称周围使用大括号?试试
PartitionKey = "{SomeKey}" -
如果我将其更改为使用大括号,我会得到:Microsoft.Azure.WebJobs.Host:错误索引方法“BlobStorageEventHandler.Run”。 Microsoft.Azure.WebJobs.Host:“SomeKey”不存在绑定参数。
-
{MyEntity.SomeKey}? -
原来,Azure Functuons 中的绑定不支持 MongoDb,所以我不得不切换到 .Net 的 MongoDb 驱动程序(虽然使用“/SomeKey”确实创建了集合,但我是无法在其中获取数据(
标签: azure-functions azure-cosmosdb azure-cosmosdb-mongoapi