Привязка AF к CosmosDb

Я пытаюсь вывести данные из функции 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;}
}

Результаты по ошибке:

{"Ошибки": ["Не удалось принять путь определения компонента ключа раздела 'SomeKey', сбой рядом с позицией '0'. Пути ключей раздела должны содержать только допустимые символы и не содержать завершающей косой черты или символа подстановки."]}

Есть идеи, что я делаю неправильно?


person smolesen    schedule 25.07.2018    source источник
comment
Вы пробовали использовать фигурные скобки вокруг названия своего свойства? Попробуйте PartitionKey = "{SomeKey}"   -  person Nick Chapsas    schedule 25.07.2018
comment
Если я изменю его на фигурные скобки, я получу: Microsoft.Azure.WebJobs.Host: Error indexing method 'BlobStorageEventHandler.Run'. Microsoft.Azure.WebJobs.Host: для SomeKey не существует параметра привязки.   -  person smolesen    schedule 26.07.2018
comment
Оказывается, привязка в Azure Functuons не поддерживает MongoDb, поэтому мне пришлось переключиться на драйвер MongoDb для .Net (хотя использование / SomeKey действительно создало коллекцию, но мне не удалось получить туда данные (   -  person smolesen    schedule 27.07.2018


Ответы (2)


Вы пробовали, например, PartitionKey = "/ SomeKey" или PartitionKey = "'SomeKey'"?

person Kdog    schedule 26.07.2018
comment
Почему этот ответ был принят ?? Каково решение? - person nrofis; 04.04.2020

Решение - добавить косую черту в начале ключа, например PartitionKey = "/SomeKey". Тогда ключ раздела действует как путь, поэтому ему нужен / в начале. Вы не использовали косую черту, поэтому ошибка выше.

person Pillo    schedule 01.06.2021