У меня есть метод, это такая подпись
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, как в монго:
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
);
"input string was not in a correct format"
Поле TotalPrice является числовым полем в mongodb и представляет собой переменную (с плавающей запятой или десятичную) в классе. Что означает эта ошибка и как ее использовать?

хорошо, я сделал это Я обнаружил, что в библиотеке функций mongo есть некоторые новые функции, и одна из них отсутствует в MongoDb.Driver, текущая версия С# 2.7.3, вместо этого вместе с этой dll я добавил MongoDb.Driver.Core.Signed 2.7.2 и MongoDb.Driver .Подписано 2.7.2 проблема исчезла