Criar dados - .NET SDK
Criar um Objeto de Realm
Ao criar ou atualizar documentos, todas as gravações devem ocorrer em uma transação.
O seguinte código mostra dois métodos para criar um novo Objeto de Realm. No primeiro exemplo, criamos o objeto primeiro e, em seguida, o adicionamos ao Realm dentro de um método WriteAsync() . No segundo exemplo, criamos o documento dentro do bloco WriteAsync
, que retorna um objeto de Realm com o qual podemos trabalhar ainda mais.
var testItem = new Item { Name = "Do this thing", Status = ItemStatus.Open.ToString(), Assignee = "Aimee" }; await realm.WriteAsync(() => { realm.Add(testItem); }); // Or var testItem2 = await realm.WriteAsync(() => { return realm.Add<Item>(new Item { Name = "Do this thing, too", Status = ItemStatus.InProgress.ToString(), Assignee = "Satya" }); } );
Fazer Upsert de um Objeto de Realm
A atualização de um documento é o mesmo que a criação de um novo, exceto pelo fato de que você define o parâmetro opcional update
como true
. Neste exemplo, criamos um novo objeto Item
com um Id
exclusivo. Em seguida, inserimos um item com o mesmo ID, mas um valor Name
diferente. Como definimos o parâmetro update
como true
, o registro existente é atualizado com o novo nome.
var id = ObjectId.GenerateNewId(); var item1 = new Item { Id = id, Name = "Defibrillate the Master Oscillator", Assignee = "Aimee" }; // Add a new person to the realm. Since nobody with the existing Id // has been added yet, this person is added. await realm.WriteAsync(() => { realm.Add(item1, update: true); }); var item2 = new Item { Id = id, Name = "Fluxify the Turbo Encabulator", Assignee = "Aimee" }; // Based on the unique Id field, we have an existing person, // but with a different name. When `update` is true, you overwrite // the original entry. await realm.WriteAsync(() => { realm.Add(item2, update: true); }); // item1 now has a Name of "Fluxify the Turbo Encabulator" // and item2 was not added as a new Item in the collection.