Есть ли лучший способ обновить CosmosDB без идентификатора?C#

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

Сообщение Anonymous »


У меня есть клиентское приложение, в котором я создаю модели и сохраняю их локально, а также отправляю сопоставленный DTO в веб-API.

class TestModel // Локально хранимая модель { Идентификатор владельца руководства; Guid LocalId; строковое имя; } класс TestDto // Удаленно хранимая модель { Идентификатор гида; Идентификатор владельца руководства; Guid LocalId; строковое имя; } На стороне сервера: Когда я отправляю сопоставленный DTO в Web Api, я хотел бы обновить его, но поскольку модель не знает идентификатор хранящегося в базе данных DTO, я использую OwnerId и LocalId для обнаружения сохраненного DTO для обновления.

public async Task UpdateAsync(TestDto testDto) { IOrderedQueryable queryable = _container.GetItemLinqQueryable(); // Создаем запрос LINQ var match = queryable.Where(p => p.LocalId == testDto.LocalId && p.OwnerId == testDto.OwnerId); использование FeedIterator linqFeed = match.ToFeedIterator(); Результаты List = новый List(); пока (linqFeed.HasMoreResults) { вар ответ = ждут linqFeed.ReadNextAsync(); results.AddRange((IEnumerable)response); } вар результат = результаты.SingleOrDefault(); if (результат!= null && results.Count == 1) { testDto.Id = результат.Id; // нужно установить обновление ждут _container.UpsertItemAsync(testDto, new PartitionKey(testDto.OwnerId.ToString())); } вернуть результат; } Есть ли лучший способ отфильтровать? Выбрать обновляемый документ? Вместо linqFeed и SingleOrDefault?
Ответить

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

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

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

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

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