Посмотрел этот пример, но ему 13 лет, и часть кода кажется устаревшей (и это тоже не сработало): вставить в таблицу MySQL или обновить, если существует
На основе множества других примеров построили следующее:
Код: Выделить всё
public void CreateOrUpdate(Batch batch)
{
var filter = Builders.Filter.Eq("_id", batch.Id);
var options = new ReplaceOptions { IsUpsert = true };
_batchCollection.ReplaceOne(filter, batch, options);
}
Код: Выделить всё
namespace MyApp.MyService.MyModel
{
[Serializable]
public class Batch
{
// Identification info
public string Description { get; set; } = "not provided";
// The unique Batch Id, this will be used everywhere to identify this batch run
[BsonId]
[BsonGuidRepresentation(GuidRepresentation.Standard)]
public Guid Id { get; set; }
[BsonGuidRepresentation(GuidRepresentation.Standard)]
public Guid AccountId { get; set; }
public string BatchName { get; set; } = "";
}
}
MongoBulkWriteException`1: произошла операция массовой записи в одной или нескольких ошибках. WriteErrors: [{ Категория: «Без категории», Код: 66, Сообщение: «После применения обновления было обнаружено, что (неизменяемое) поле '_id' было изменено на _id: UUID(»bf46d19b-546f-4b96-8f0c- e06883b4d70d")" } ].
Ранее я доказал, что одна вставка работает, поэтому есть подключение и клиент работает.
Подробнее здесь: https://stackoverflow.com/questions/790 ... e-document
Мобильная версия