Драйвер Mongodb C#: обновление предоставлено только поля, включая установку некоторых полей на NULLC#

Место общения программистов C#
Ответить
Anonymous
 Драйвер Mongodb C#: обновление предоставлено только поля, включая установку некоторых полей на NULL

Сообщение Anonymous »

Я использую MongoDB с C# (mongodb.driver), и я хочу обновить только поля, представленные в моей модели API. Мой текущий подход работает для обновления значений, но я не могу установить поле (строка, число или объект.var updateBuilder = Builders.Update;
var updates = new List();

foreach (var prop in typeof(ExportShipmentExBond).GetProperties())
{
if (!prop.CanRead) continue;

if (prop.Name == nameof(ExportShipmentExBond.ExportShipmentExBondId) ||
prop.Name == nameof(ExportShipmentExBond.ExportShipmentExBondCreatedDate) ||
prop.Name == nameof(ExportShipmentExBond.ExportShipmentExBondCreatedBy))
continue;

var newValue = prop.GetValue(model);

if (newValue != null)
{
updates.Add(updateBuilder.Set(prop.Name, newValue));
}
}

if (updates.Count > 0)
{
var updateDefinition = updateBuilder.Combine(updates);
await _collection.FindOneAndUpdateAsync(
filter,
updateDefinition,
new FindOneAndUpdateOptions
{
ReturnDocument = ReturnDocument.After
});
}
< /code>
Проблема: < /p>
  • Только обновления, предоставленные поля. Строка)
Вопрос:
Как я могу обновить только предоставленные поля и разрешить явное установление поля (включая строки ObjectId), используя C# Mongodb, не перепроверка других полей?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -some-fiel
Ответить

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

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

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

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

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