2017-01-25 3 views
2

Я использую драйвер C# mongodb. Когда я хочу обновить свои конкретные значения, он выдает исключение. Я использовал это раньше, но теперь я не знаю, как, но раньше я не получал никаких ошибок. Вот мой код:C# MongoDB UpdateManyAsync с методом Set генерирует исключение

var result = await col.UpdateManyAsync(
     p => p.X > 5, 
     Builders<Payment>.Filter.Gt(p => p.Amount, 100).Set("Level", "High") 
); 

А вот мой класс Оплата:

public class Payment 
    { 
     public ObjectId Id { get; set; } 
     public decimal Amount { get; set; } 
     public Type Type { get; set; } 
    } 

ответ

2

Вы не имеют свойство уровня в своем классе платежей. Если это именно то, что вы хотите сделать, то вам нужно добавить атрибут BsonIgnoreExtraElements к классу компенсации в противном случае он выдает ошибку следующим образом:

[BsonIgnoreExtraElements] 
public class Payment 
{ 
    public ObjectId Id { get; set; } 
    public decimal Amount { get; set; } 
    public Type Type { get; set; } 
} 
+0

Оу! я забыл об этом. спасибо, что это сработало. да, я точно хочу это сделать. если оно больше 100, я добавлю свойство. –

+0

@sleven, если ваша проблема решена, вы можете отметить этот ответ как решение :) –

+0

ах жаль, что я этого не знал. я попробовал сейчас, но он сказал, что вы должны подождать 10 минут, чтобы принять ответ. возможно, из-за того, что я новичок :) –

 Смежные вопросы

  • Нет связанных вопросов^_^