Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

データの作成 - .NET SDK

項目一覧

  • Realm オブジェクトの作成
  • Realm オブジェクトのアップサート

ドキュメントを作成または更新する際、すべての書込み (write) はトランザクション内で実行される必要があります。

次のコードは、新しい Realm オブジェクトを作成するための 2 つの方法を示しています。 最初の例では、最初に オブジェクトを作成し、次に WriteAsync()メソッド内の Realm に追加します。 2 番目の例では、 WriteAsyncブロック内に ドキュメントを作成しています。これにより、さらに操作可能な Realm オブジェクトが返されます。

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"
});
}
);

ドキュメントをアップサートする方法は、任意のupdateパラメータをtrueに設定することを除いて、新しいドキュメントの作成と同じです。 この例では、一意のIdを持つ新しいItemオブジェクトを作成します。 次に、ID は同じであるがName値が異なるアイテムを挿入します。 updateパラメータがtrueに設定されているため、既存のレコードは新しい名前で更新されます。

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.

戻る

CRUD