クラス移行
このクラスは、データベースをあるバージョンから別のバージョンに移行するときに提供されます。 これには、 OldRealmとNewRealmの 2 つのプロパティが含まれています。 NewRealmが最新であることを確認する必要があるもの。 これには、指定した構成に対応するモデルが含まれます。 動的 API を使用して、 OldRealmから読み取り、クラスから削除されたプロパティにアクセスできます。
Namespace: Realms
組み立て: Realm.dll
構文
public class Migration
プロパティ
| このページを編集 ソースを表示NewRealm
変更する必要があるRealmを取得し、最新であることを確認します。
宣言
public Realm NewRealm { get; }
プロパティ値
タイプ | 説明 |
---|---|
Realm | 移行後に保存されるRealm 。 |
OldRealm
移行前のRealmを取得します。 動的 API を使用してアクセスします。
宣言
public Realm OldRealm { get; }
プロパティ値
タイプ | 説明 |
---|---|
Realm | 移行前のRealm 。 |
メソッド
| このページを編集 ソースを表示FindInNewRealm<T>(IRealmObject)
宣言
public T? FindInNewRealm<T>(IRealmObject obj) where T : IRealmObject
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IRealmObject | obj | 古い Realm から取得されたオブジェクト。 |
戻り値
タイプ | 説明 |
---|---|
t | 移行後の対応するオブジェクト、またはオブジェクトが新しい邦土に存在しなくなった場合は |
型パラメータ
名前 | 説明 |
---|---|
t | 新しい Realm 内のオブジェクトのタイプ。 |
例
foreach (var oldPerson in migration.OldRealm.DynamicApi.All("Person"))
{
var newPerson = migration.FindInNewRealm<Person>(oldPerson)
newPerson.Name = $"{oldPerson.DynamicApi.Get<string>("FirstName")} {oldPerson.DynamicApi.Get<string>("LastName")}";
}
|
このページを編集
ソースを表示
RemoveType(string)
移行中にタイプを削除します。 型に関連付けられているすべてのデータとそのスキーマは、 Realmから削除されます。
宣言
public bool RemoveType(string typeName)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
string | typeName | 削除する必要がある型。 |
戻り値
タイプ | 説明 |
---|---|
ブール |
|
コメント
削除された型は、移行ブロック内のOldRealmから引き続きアクセスできます。 型は新しいスキーマに存在してはなりません。 テーブルの内容を削除する必要がある場合は、 NewRealm で<T> RemoveAll を使用できます。
RenameProperty(string, string, string)
移行中にプロパティの名前を変更します。
宣言
public void RenameProperty(string typeName, string oldPropertyName, string newPropertyName)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
string | typeName | プロパティ名の変更を実行する必要があるタイプ。 |
string | oldPropertyName | プロパティの以前の名前。 |
string | newPropertyName | プロパティの新しい名前。 |
例
// Model in the old schema
class Dog : RealmObject
{
public string DogName { get; set; }
}
// Model in the new schema
class Dog : RealmObject
{
public string Name { get; set; }
}
//After the migration Dog.Name will contain the same values as Dog.DogName from the old realm, without the need to copy them explicitly
var config = new RealmConfiguration
{
SchemaVersion = 1,
MigrationCallback = (migration, oldSchemaVersion) =>
{
migration.RenameProperty("Dog", "DogName", "Name");
}
};