Azure documentdb создает свойство идентификатора дубликатов документовC#

Место общения программистов C#
Ответить
Anonymous
 Azure documentdb создает свойство идентификатора дубликатов документов

Сообщение Anonymous »

Я хочу сохранить следующий объект в Azure DocumentDB

Код: Выделить всё

public class MyDocument
{
public string Id { get; set; }
public SomeOtherClass SomeOtherClass { get; set; }
}
Идентификатор свойства представляет собой временную метку (ггггММддЧЧммсс), за которой следует идентификатор. В качестве побочного эффекта это позволяет мне сортировать по идентификатору.
Я использовал этот вызов для его хранения:

Код: Выделить всё

 await docDbClient.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(db, coll), myDoc);
Когда документ сохраняется, он имеет свойства моего документа (Id и SomeOtherClass) и дополнительное свойство «id» (обратите внимание на строчную букву «i») . (и некоторые другие технические свойства, используемые documentdb). Он заполнен руководством.

Насколько я понял, сохраняя объект, у которого уже есть свойство Id, documentdb будет использовать это, а не генерировать оно собственное (но оно было!).

Теперь у меня две проблемы: я не могу проверить с помощью

Код: Выделить всё

 await docDbClient.ReadDocumentAsync(UriFactory.CreateDocumentCollectionUri(db, coll), myDoc.Id);
чтобы узнать, существует ли уже документ, и я не могу использовать свойство Id для сортировки и сравнения документов в таком запросе:

Код: Выделить всё

IQueryable query = _client.CreateDocumentQuery(
UriFactory.CreateDocumentCollectionUri(_account.Database, _account.Collection), queryOptions);
query = query.Where(x => x.Id.CompareTo(inputValue) >= 0);
где inputValue — это еще один ключ той же формы, который будет использоваться для разбиения по страницам. Потому что при десериализации объекта из базы данных documentdb свойство id заменяет мое свойство Id, и я никогда не вижу его исходного значения.

Я использую это неправильно?
Разве я сделал неверное предположение, что мое свойство Id будет использоваться вместо автоматически сгенерированного свойства в нижнем регистре?



РЕДАКТИРОВАТЬ: Я могу подтвердить, что проблема решена при использовании [JsonProperty("id")] в свойстве Id. Но любой документ уже вставлен. Я не могу получить исходное значение идентификатора

Подробнее здесь: https://stackoverflow.com/questions/431 ... d-property
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»