前回に引き続き、今回はRealmによるデータの読み書きをみていきます。
使用したRealmのバージョンは2.1.0です。
モデルの準備
今回は、以下のモデルを準備して、データの読み書きを行うこととします。
public class Person : RealmObject { public string Name { get; set; } public string Manager { get; set; } }
Realmインスタンスの取得
Realmによるデータの読み書きをするには、以下のようにしてインスタンスを取得しておく必要があります。
var realm = Realm.GetInstance();
データの書き込み
インスタンスを取得したら、以下のようにしてWriteメソッドを使用してデータを追加します。
この例では2件のデータを追加しています。
var realm = Realm.GetInstance(); realm.Write(() => { realm.Add(new Person{ Name = "HIRO", Manager = "Bill" }); realm.Add(new Person{ Name = "Jim", Manager = "Steve" }); });
データの読み取り
全データを取得したい場合は以下のようにします。
var p = realm.All<Person>();
条件を指定してデータを取得したい場合は、以下のようにWhereを使用します。
この場合はNameが「HIRO」のデータを取得します。
var p = realm.All<Person>().Where(d => d.Name == "HIRO");
データの件数を取得する
データ件数を取得したい場合はCount()メソッドを使用します。
全データ件数を取得したい場合は以下のようにします。
var count = realm.All<Person>().Count();
指定したデータの件数を取得したい場合は以下のようにします。
var count = realm.All<Person>().Where(d => d.Name == "HIRO").Count();
データの更新
データを更新するには、取得したデータのプロパティを書き換えます。データの書き込み同様にWriteメソッドを使用します。
例えばNameが「HIRO」のManagerを「Someone」に書き換えたい場合は、以下のようにします。
データを取得する際に.First()としているのは、先頭の1件に対して書き換えたいためです。
var p = realm.All<Person>().Where(d => d.Name == "HIRO").First(); realm.Write(() => { p.Manager = "Someone"; });
データの削除
データを削除するには、RealmインスタンスのRemoveメソッドを使用します。
以下はNameが「HIRO」のデータを削除します。
var realm = Realm.GetInstance(); var p = realm.All<Person>().Where(d => d.Name == "HIRO").First(); realm.Write(() => { realm.Remove(p); });
データベースを削除する
モデルの内容が変更になったりして、最初からデータベースを作り直したい場合があります。このような場合は、以下のようにDeleteRealmメソッドを使用します。
var config = new RealmConfiguration(); Realm.DeleteRealm(config);
Please follow and like us:
コメント