У меня есть метод с такой подписью
Task<bool> UpdateOneAsync<TDocument, TField>(TDocument documentToModify, Expression<Func<TDocument, TField>> field, TField value)
where TDocument : IDocument;
и с подобным методом
public virtual async Task<bool> UpdateOneAsync<TDocument, TField>(TDocument documentToModify, Expression<Func<TDocument, TField>> field, TField value)
where TDocument : IDocument
{
var filter = Builders<TDocument>.Filter.Eq("Id", documentToModify.Id);
var updateRes = await HandlePartitioned(documentToModify).UpdateOneAsync(filter, Builders<TDocument>.Update.Set(field, value));
return updateRes.ModifiedCount == 1;
}
Сценарий UpdateOneAsync такой же, как в mongo:
Task<UpdateResult> UpdateOneAsync(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> update, UpdateOptions options = null, CancellationToken cancellationToken = default);
когда я использую эту функцию из моего слоя, как показано ниже, появляется исключение
await _mongoDbRepository.UpdateOneAsync<XPartitionedDocument,float>(
documentToModify: isExist,
field: x => (float)x.TotalPrice,
value: td.TotalPrice
);
"строка ввода не была в правильном формате"
Поле TotalPrice равночисловое поле в mongodb и является (плавающей или десятичной) переменной в классе.Что означает эта ошибка и как ее использовать?