クラスRealm
Realm インスタンス(Realm とも)は、Realm データベースを表します。
警告: 停止していない Realm インスタンスはスレッドセーフではなく、スレッド間で共有できません。 Realm を操作する各スレッドでGetInstance(RealmConfigurationBase?)を呼び出す必要があります。
実装
Namespace: Realms
組み立て: Realm.dll
構文
public class Realm : IDisposable
プロパティ
| このページを編集 ソースを表示Config
この Realm のパスとその他の設定を制御するRealmConfigurationBaseを取得します。
宣言
public RealmConfigurationBase Config { get; }
プロパティ値
タイプ | 説明 |
---|---|
RealmConfigurationBase | Realm の構成。 |
DynamicApi
この Realm インスタンスの 動的 API を含むオブジェクトを取得します。
宣言
[Preserve]
public Realm.Dynamic DynamicApi { get; }
プロパティ値
タイプ | 説明 |
---|---|
Realm 。動的 | この Realm をラップするRealm.Dynameインスタンス。 |
IsClosed
Dispose()によって インスタンスが閉じられているかどうかを示す値を取得します。 true
の場合は、そのインスタンスでメソッドを呼び出してはなりません。
宣言
public bool IsClosed { get; }
プロパティ値
タイプ | 説明 |
---|---|
ブール |
|
IsFrozen
この Realm が固定されているかどうかを示す値を取得します。 凍結された Realm は不変であり、データベースに書込みが行われても更新されません。 ライブ Realm と違い、固定された Realm はスレッド全体で使用できます。
宣言
public bool IsFrozen { get; }
プロパティ値
タイプ | 説明 |
---|---|
ブール |
|
IsInTransaction
この Realm に関連付けられているアクティブな書込みトランザクション (write transaction) が存在するかどうかを示す値を取得します。
宣言
public bool IsInTransaction { get; }
プロパティ値
タイプ | 説明 |
---|---|
ブール |
|
その他の参照
| このページを編集 ソースを表示スキーマ
この Realm に保存できるすべてのタイプを記述する RealmSchema インスタンスを取得します。
宣言
public RealmSchema Schema { get; }
プロパティ値
タイプ | 説明 |
---|---|
RealmSchema | Realm のスキーマ。 |
サブスクリプション
この Realm のアクティブなサブスクリプションを表す SubscriptionSet を取得します。
宣言
public SubscriptionSet Subscriptions { get; }
プロパティ値
タイプ | 説明 |
---|---|
SubscriptionSet | サーバーがローカル Realm と同期するオブジェクトを決定するために使用しているクエリ サブスクリプションを含む SubscriptionSet 。Realm がFlexibleSyncConfigurationを使用して作成されていない場合、 NotSupportedExceptionがスローされます。 |
例外
タイプ | 条件 |
---|---|
NULLではない例外 | Realm がFlexibleSyncConfigurationを使用して開かれていない場合にスローされます。 |
SyncSession
宣言
public Session SyncSession { get; }
プロパティ値
タイプ | 説明 |
---|---|
セッション | インスタンスが FlexibleSyncConfiguration または FlexibleSyncConfiguration または FlexibleSyncConfiguration で作成されている場合の、 との同期を担当する セッション MongoDB AtlasRealm。これがローカルまたはメモリ内の Realm の場合、 NotSupportedExceptionがスローされます。 |
例外
タイプ | 条件 |
---|---|
NULLではない例外 | Realm が FlexibleSyncConfiguration またはFlexibleSyncConfigurationまたはFlexibleSyncConfigurationを使用して開かれていない場合にスローされます。 |
UseLegacyGuidRepresentation
Guid 値をデータベースに保存するときに、レガシー表現を使用するかどうかを示す値を取得または設定します。
宣言
[Obsolete("It is strongly advised to migrate to the new Guid representation as soon as possible to avoid data inconsistency.")]
public static bool UseLegacyGuidRepresentation { get; set; }
プロパティ値
タイプ | 説明 |
---|---|
ブール |
コメント
10.10.0 より前のバージョンでは、.NET SDK には、GUID 値をアーキテクチャ固有のバイト順序(ほとんどの CPU ではリトルエンディアン)で保存するバグがあり、データベース クエリ エンジンと Sync では常に BID 値として扱われますエンディアン。 これは、SDK とデータベース間で異なるstring表現として明示されます(例: "912195f2-47a8-c341-8362-497f92cf7d24" ではなく 10.10.0 以降では、ビッグ エンディアン表現がデフォルトの であり、ローカル(同期されていない)Realm にはシームレスな 1 回限りの移行が提供されます。 Realm が初めて開かれると、Guid 値を保持するすべてのプロパティがリトルエンディアンからビッグエンディアン形式に更新され、.NET SDK はそれらをそのようなものとして扱います。 SDK からのデータの読み取り/書き込みでは、大きな変更はありませんが、Realm Studio または他の SDK から Realm ファイルにアクセスすると一貫した値が表示されるはずです。
同期された Realm では、データが分散されているため、このような移行は不可能です。 したがって、権限がある場合は Atlas の Guid 表現が必要であり、SDK 値はそれに合わせて更新する必要があることを前提としています。 これは、SDK が 10.10.0 より前と比較された、既存の GUID データを表す数の異なるstringのレポート作成を開始することを意味します。 SDK からサードパーティ システムをクエリしていると、予期しない結果が生じる可能性があります。 既存の動作(SDK ではリトルエンディアン、Atlas ではビッグエンディアン)を維持するには、この値をtrue
に設定し、Realm サポートチーム( https://support.mongodb.com )に問い合わせてください。 が、新しい形式へのデータの移行に役立ちます。
メソッド
| このページを編集 ソースを表示Add<T>(IEnumerable<T>)
宣言
public void Add<T>(IEnumerable<T> objs) where T : IAsymmetricObject
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IEnumerable<T> | objs | この Realm に追加される IAmetricObject インスタンスのコレクション。 |
型パラメータ
名前 | 説明 |
---|---|
t | タイプ T はIAmetricObjectであるだけでなく、Fewer によって処理されている必要があるため、永続的なプロパティがある必要があります。 |
コメント
コレクションに、このRealmによってすでに管理されている項目が含まれている場合は、それらは無視されます。 このメソッドは、オブジェクトをその場で変更するため、実行後はコレクション内のすべての項目が管理されます。 IAsyncMongoDBが管理され、トランザクションがコミットされると、元のIAsyncMongoDB参照のいずれかのプロパティを参照すると例外がスローされます。 したがって、トランザクション後は、コレクション内の要素のプロパティを参照することはできません。
例外
タイプ | 条件 |
---|---|
RealmInvalidTransactionException | |
RealmObjectManagedByAlmException | 複数のRealmを持つオブジェクトを管理することはできません。 |
Add%<T><T>
スタンドアロンRealmObjectのコレクションをこのRealmに追加します。
宣言
public void Add<T>(IEnumerable<T> objs, bool update = false) where T : IRealmObject
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IEnumerable<T> | objs | この Realm に追加される IRealmObject インスタンスのコレクション。 |
ブール | update |
|
型パラメータ
名前 | 説明 |
---|---|
t | タイプ T はIRealmObjectであるだけでなく、Fundy Webhook によって処理されている必要があるため、永続的なプロパティがある必要があります。 |
コメント
コレクションに、このRealmによってすでに管理されている項目が含まれている場合は、それらは無視されます。 このメソッドはオブジェクトをインプレースで変更するため、実行後はobjs
内のすべてのアイテムが管理されます。
例外
タイプ | 条件 |
---|---|
RealmInvalidTransactionException | |
RealmObjectManagedByAlmException | 複数のRealmを持つオブジェクトを管理することはできません。 |
Add<T>(T)
このRealmは、スタンドアロン オブジェクトとして作成されたIAmetricObjectの管理を開始します。
宣言
public void Add<T>(T obj) where T : IAsymmetricObject
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
t | obj | スタンドアロンのIAmetricObjectである必要があり、 |
型パラメータ
名前 | 説明 |
---|---|
t | タイプ T はIAmetricObjectであるだけでなく、Fewer によって処理されている必要があるため、永続的なプロパティがある必要があります。 |
コメント
オブジェクトがすでにこのRealmによって管理されている場合、このメソッドは何も実行しません。 このメソッドはオブジェクトをインプレースで変更するため、実行後にIAmetricObjectが管理されます。 IAmetricObjectが管理対象になると、元のIAmetricObject参照のいずれかのプロパティが例外をスローします。
例外
タイプ | 条件 |
---|---|
RealmInvalidTransactionException | |
RealmObjectManagedByAlmException | 複数のRealmを持つオブジェクトを管理することはできません。 |
Add<T>(T、ブール値)
このRealmは、スタンドアロン オブジェクトとして作成されたIRealmObjectの管理を開始します。
宣言
public T Add<T>(T obj, bool update = false) where T : IRealmObject
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
t | obj | スタンドアロン オブジェクトである必要があります。 |
ブール | update |
|
戻り値
タイプ | 説明 |
---|---|
t | が渡されたオブジェクト。これにより、 |
型パラメータ
名前 | 説明 |
---|---|
t | タイプ T はIRealmObjectであるだけでなく、Fundy Webhook によって処理されている必要があるため、永続的なプロパティがある必要があります。 |
コメント
オブジェクトがすでにこのRealmによって管理されている場合、このメソッドは何も実行しません。 このメソッドはオブジェクトをインプレースで変更するため、実行後にobj
が管理されます。 返すのは、スムーズな構文シナリオを可能にする便宜上でのみ使用されます。
例外
タイプ | 条件 |
---|---|
RealmInvalidTransactionException | |
RealmObjectManagedByAlmException | 複数のRealmを持つオブジェクトを管理することはできません。 |
<T>すべて()
直接使用またはそれ以降のクエリのために、反復可能なオブジェクトのセットを抽出します。
宣言
public IQueryable<T> All<T>() where T : IRealmObject
戻り値
タイプ | 説明 |
---|---|
IQueryable <T> | 追加のフィルタリングがないクエリ可能なコレクションでは、このRealm内のクラス T のすべてのオブジェクトを反復処理できます。 |
型パラメータ
名前 | 説明 |
---|---|
t | タイプ T はIRealmObjectである必要があります。 |
コメント
返されたコレクションは遅延評価され、コレクション自体によってメモリに保持されているオブジェクトは存在しないため、この呼び出しは多数のアイテムに対しても非常に低コストです。
StartWrite()
この Realm の書込みトランザクション (write transaction) を開始します。
宣言
public Transaction BeginWrite()
戻り値
タイプ | 説明 |
---|---|
トランザクション | 書込みモードのトランザクション。Realmに永続化されたオブジェクトの作成または変更に必要です。 |
例
using (var trans = realm.BeginWrite())
{
realm.Add(new Dog
{
Name = "Rex"
});
trans.Commit();
}
|
このページを編集
ソースを表示
StartWriteAsync(CancelToken)
この Realm の書込みトランザクション (write transaction) を非同期に開始します。
宣言
public Task<Transaction> BeginWriteAsync(CancellationToken cancellationToken = default)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
CancelToken | completedToken | 書込みトランザクション (write transaction) を開始するまでの待機を停止するための任意のキャンセル トークン。 |
戻り値
タイプ | 説明 |
---|---|
タスク<トランザクション> | 書込みモードでトランザクションを返す待機可能なタスク。 Realmに保持されているオブジェクトの作成、削除、または変更にはトランザクションが必要です。 |
コメント
このメソッドは非同期に書込みロック (write lock)を取得し、Realm が開かれた元のスレッドで続行をディスパッチします。 その後、トランザクションは非同期または同期的にコミットできます。
SyncronizationContext のないスレッドで呼び出された場合(つまり 通常はバックグラウンド スレッド)の場合、このメソッドはBeginWrite()を呼び出し、同期的に実行されます。
例
using (var trans = await realm.BeginWriteAsync())
{
realm.Add(new Dog
{
Name = "Rex"
});
await trans.CommitAsync();
// or just
// trans.Commit();
}
|
このページを編集
ソースを表示
compact(RealmConfigurationBase?)
Realm ファイルを圧縮します。 Realm ファイルには通常、空き領域または未使用の領域が含まれます。 このメソッドは、この空き領域を削除し、ファイル サイズを縮小します。 Realm ファイル内のオブジェクトは影響を受けません。
宣言
public static bool Compact(RealmConfigurationBase? config = null)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
RealmConfigurationBase | config | 任意構成。 |
戻り値
タイプ | 説明 |
---|---|
ブール |
|
コメント
Realm ファイルは他のスレッドで開いてはなりません。 ファイル システムには、少なくとも Realm ファイルのコピー用の空き領域が必要です。 このメソッドはトランザクション内で呼び出せません。 ファイル操作が失敗した場合、Realm ファイルは影響を受けません。
DeleteRealm(RealmConfigurationBase)
Realm が存在し、開いていない場合は、その Realm に関連付けられているすべてのファイルを削除します。
宣言
public static void DeleteRealm(RealmConfigurationBase configuration)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
RealmConfigurationBase | 構成 | Realm パスを提供するRealmConfigurationBase 。 |
コメント
Realm ファイルは他のスレッドで開いてはなりません。
.lock を除くすべて これにより、 ファイルが削除されます。
例外
タイプ | 条件 |
---|---|
RealmInUseException | Realm がまだ開いている場合にスローされます。 |
Dispose()
これが、参照を保持している最後に残っているインスタンスである場合は、現在の インスタンスを破棄し、ネイティブ Realm を閉じます。
宣言
public void Dispose()
Find<T>(ObjectId?)
PrimaryKey プロパティを持つクラスからのオブジェクトの高速検索。
宣言
public T? Find<T>(ObjectId? primaryKey) where T : IRealmObject
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
ObjectId? | プライマリキー | == 検索と同じように、完全に一致するプライマリキー。 |
戻り値
タイプ | 説明 |
---|---|
t |
|
型パラメータ
名前 | 説明 |
---|---|
t | タイプ T はIRealmObjectである必要があります。 |
例外
タイプ | 条件 |
---|---|
RealmClassLacksPrimaryKeyException | IRealmObjectクラス T にPrimaryKeyAttributeがない場合。 |
<T>Find=T>(Guid?)
PrimaryKey プロパティを持つクラスからのオブジェクトの高速検索。
宣言
public T? Find<T>(Guid? primaryKey) where T : IRealmObject
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
ガイダンス | プライマリキー | == 検索と同じように、完全に一致するプライマリキー。 |
戻り値
タイプ | 説明 |
---|---|
t |
|
型パラメータ
名前 | 説明 |
---|---|
t | タイプ T はIRealmObjectである必要があります。 |
例外
タイプ | 条件 |
---|---|
RealmClassLacksPrimaryKeyException | IRealmObjectクラス T にPrimaryKeyAttributeがない場合。 |
Find<T>(long?)
PrimaryKey プロパティを持つクラスからのオブジェクトの高速検索。
宣言
public T? Find<T>(long? primaryKey) where T : IRealmObject
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
long? | プライマリキー | == 検索と同じように、完全に一致するプライマリキー。 |
戻り値
タイプ | 説明 |
---|---|
t |
|
型パラメータ
名前 | 説明 |
---|---|
t | タイプ T はIRealmObjectである必要があります。 |
例外
タイプ | 条件 |
---|---|
RealmClassLacksPrimaryKeyException | IRealmObjectクラス T にPrimaryKeyAttributeがない場合。 |
Find<T>(string?)
PrimaryKey プロパティを持つクラスからのオブジェクトの高速検索。
宣言
public T? Find<T>(string? primaryKey) where T : IRealmObject
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
string | プライマリキー | == 検索と同じように、完全に一致するプライマリキー。 |
戻り値
タイプ | 説明 |
---|---|
t |
|
型パラメータ
名前 | 説明 |
---|---|
t | タイプ T はIRealmObjectである必要があります。 |
例外
タイプ | 条件 |
---|---|
RealmClassLacksPrimaryKeyException | IRealmObjectクラス T にPrimaryKeyAttributeがない場合。 |
freeze()
この Realm の固定(不変)スナップショットを返します。
固定された Realm は、Realm のデータの特定のバージョンの不変のスナップショット ビューです。 通常のRealmインスタンスとは異なり、Realm に行われた書込みを反映するためのライブアップデートは行われないため、任意のスレッドからアクセスできます。 固定された Realm への書込みは許可されておらず、書込みトランザクションを開始しようとすると例外がスローされます。 固定された Realm から読み取られるすべてのオブジェクトとコレクションも固定されます。 注: 異なるバージョンを持つ多数の固定された Realm を有効にすると、基礎となるデータベースのファイルサイズに悪影響が及ぶ可能性があります。 このような状況を回避するには、 MaxNumberOfActiveVersionsを設定します。宣言
public Realm Freeze()
戻り値
タイプ | 説明 |
---|---|
Realm | 固定されたRealmインスタンス。 |
GetInstance(RealmConfigurationBase?)
このスレッドのRealmインスタンスを取得するためのファクトリー。
宣言
public static Realm GetInstance(RealmConfigurationBase? config = null)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
RealmConfigurationBase | config | 任意構成。 |
戻り値
タイプ | 説明 |
---|---|
Realm | Realmインスタンス。 |
例外
タイプ | 条件 |
---|---|
RealmFileAccessErrorException | ファイル システムがファイル作成を妨げるエラーを返した場合にスローされます。 |
GetInstance(string)
このスレッドのRealmインスタンスを取得するためのファクトリー。
宣言
public static Realm GetInstance(string databasePath)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
string | databasePath | Realm へのパスは、現在のプラットフォームの有効な完全パス、相対サブディレクトリ、またはファイル名だけである必要があります。 |
戻り値
タイプ | 説明 |
---|---|
Realm | Realmインスタンス。 |
コメント
相対パスを指定する場合、サブディレクトリ以外を指定すると、OS によるサンドボックス化が失敗する可能性があります。
例外
タイプ | 条件 |
---|---|
RealmFileAccessErrorException | ファイル システムがファイル作成を妨げるエラーを返した場合にスローされます。 |
GetInstanceAsync(RealmConfigurationBase?, CancelToken)
Realmインスタンスを非同期に取得するためのファクトリー。
宣言
public static Task<Realm> GetInstanceAsync(RealmConfigurationBase? config = null, CancellationToken cancellationToken = default)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
RealmConfigurationBase | config | Realm を記述する 構成オブジェクト 。 |
CancelToken | completedToken | 作業をキャンセルするために使用できる任意のキャンセル トークン。 |
戻り値
タイプ | 説明 |
---|---|
Task<Realm> | リモート レルムが完全に同期されたら、またはローカル レルムの場合は移行が実行された後に完了される待機可能なTask<TResult>です。 |
コメント
構成がSyncConfigurationBaseの場合、返された Task オブジェクトが完了する前に、Realm がダウンロードされ、サーバーと完全に同期されます。 それ以外の場合、このメソッドはバックグラウンド スレッドですべての移行を実行してから、開いた インスタンスを呼び出し元のスレッドに返します。
IsSmeInstance(Realm)
この インスタンスが 引数で渡された と同じコア インスタンスであるかどうかを決定します。
宣言
public bool IsSameInstance(Realm other)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
Realm | その他 | 現在の Realm と比較する Realm。 |
戻り値
タイプ | 説明 |
---|---|
ブール |
|
コメント
同じパスを持ち、同じ Realm を開く別のスレッドで複数の インスタンスを開くことができ、またそれらを開く必要があります。
Refresh()
Realmインスタンスと未処理の オブジェクトを最新の永続バージョンを指すように更新します。
宣言
public bool Refresh()
戻り値
タイプ | 説明 |
---|---|
ブール | Realmで更新が行われたかどうか。 データが実際に変更されていない場合でも true が返される場合があることに注意してください。 |
RefreshAsync()
Realmインスタンスと未処理の オブジェクトが最新の永続バージョンを指すように更新されるまで非同期に待機します。
宣言
public Task<bool> RefreshAsync()
戻り値
タイプ | 説明 |
---|---|
タスク<ブール値> | Realmで更新が行われたかどうか。 データが実際に変更されていない場合でも true が返される場合があることに注意してください。 |
コメント
ワーカー スレッド(SyncronizationContext)が null では、代わりにブロッキングRefresh()メソッドが呼び出されます。 メイン スレッド(または SyncronizationContext を持つ他のスレッド)では、 インスタンスがタスクを解決するために自動的に更新するまで待機します。 返されたタスクが解決されるまで、Realm への参照を保持する必要があることに注意してください。
Remove(IRealmObjectBase)
この Realm から永続的なオブジェクトを削除し、実質的に削除します。
宣言
public void Remove(IRealmObjectBase obj)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IRealmObjectBase | obj | この Realm に保存されたオブジェクトである必要があります。 |
例外
タイプ | 条件 |
---|---|
RealmInvalidTransactionException | |
ArgumentNullException |
|
ArgumentException | マネージドされていないオブジェクトを渡す場合。 |
RemoveAll()
この Realm によって管理されているすべてのタイプのすべてのオブジェクトを削除します。
宣言
public void RemoveAll()
例外
タイプ | 条件 |
---|---|
RealmInvalidTransactionException |
すべて削除<T>
Realm からタイプのすべてのオブジェクトを削除します。
宣言
public void RemoveAll<T>() where T : IRealmObject
型パラメータ
名前 | 説明 |
---|---|
t | 削除するオブジェクトのタイプ。 |
例外
タイプ | 条件 |
---|---|
RealmInvalidTransactionException | |
ArgumentException | 型 T がこの Realm のスキーマ内のクラスの制限されたセットの一部でない場合。 |
RemoveRange<T> (IQueryable""<T>
クエリに一致するオブジェクトを Realm から削除します。
宣言
public void RemoveRange<T>(IQueryable<T> range) where T : IRealmObjectBase
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IQueryable <T> | 範囲 | 一致するクエリ。 |
型パラメータ
名前 | 説明 |
---|---|
t | 削除するオブジェクトのタイプ。 |
例外
タイプ | 条件 |
---|---|
RealmInvalidTransactionException | |
ArgumentException |
|
ArgumentNullException |
|
Resolvereference=TValue=(Dictionary=TValue>)<TValue><TValue>
スレッドセーフリファレンス .Dictionary{TValue} が最初に作成されたときに参照されたコレクションと同じコレクションを返しますが、このスレッドの現在の Realm<TValue> では解決されました。
宣言
public IDictionary<string, TValue>? ResolveReference<TValue>(ThreadSafeReference.Dictionary<TValue> reference)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
スレッドセーフリファレンス 。 < TValue<TValue> > | 参照 | この Realm で解決するためのスレッド 定義 IDictionary=TKey, TValue============================= |
戻り値
タイプ | 説明 |
---|---|
IDictionary < string , TValue> | 現在のスレッドまたは |
型パラメータ
名前 | 説明 |
---|---|
TValue | 辞書に含まれる値の型。 |
Resolvereference=T>(List=T=)<T><T>
スレッドセーフリファレンス.List<T>が最初に作成されたときに参照されたコレクションと同じコレクションを返しますが、このスレッドの現在の Realm では解決されました。
宣言
public IList<T>? ResolveReference<T>(ThreadSafeReference.List<T> reference)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
スレッドセーフリファレンス 。 を 一覧 表示<T> | 参照 |
戻り値
タイプ | 説明 |
---|---|
IList <T> | 現在のスレッドまたは、参照が作成された後にリストの親オブジェクトが削除されている場合は |
型パラメータ
名前 | 説明 |
---|---|
t | コレクションに含まれるオブジェクトの型。 |
Resolvereference=T>(Object=T=)<T><T>
スレッドセーフ リファレンス .Object が最初に作成されたときに参照されたオブジェクトと同じオブジェクトを返しますが、このスレッドの現在の Realm<T> では解決されたオブジェクトを返します。
宣言
public T? ResolveReference<T>(ThreadSafeReference.Object<T> reference) where T : IRealmObjectBase
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
スレッドセーフリファレンス。オブジェクト<T> | 参照 | この Realm で解決するためのスレッド定義された IRealmObject / I embeddedObject へのスレッドセーフな参照。 |
戻り値
タイプ | 説明 |
---|---|
t | 現在のスレッドまたは参照が作成された後にオブジェクトが削除されている場合は、 |
型パラメータ
名前 | 説明 |
---|---|
t | 参照に含まれるオブジェクトの型。 |
Resolvereference[T](Query[T]]<T><T>
宣言
public IQueryable<T> ResolveReference<T>(ThreadSafeReference.Query<T> reference) where T : IRealmObjectBase
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
スレッドセーフリファレンス。クエリ<T> | 参照 |
戻り値
タイプ | 説明 |
---|---|
IQueryable <T> | 現在のスレッドに対して解決された、元のIQueryable<T>のスレッド定義インスタンス。 |
型パラメータ
名前 | 説明 |
---|---|
t | クエリに含まれるオブジェクトの型。 |
<T><T>Resolvereference=T=(Set=T=)
宣言
public ISet<T>? ResolveReference<T>(ThreadSafeReference.Set<T> reference)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
スレッドセーフリファレンス 。 <T>を設定 | 参照 |
戻り値
タイプ | 説明 |
---|---|
ISet<T> | <T> |
型パラメータ
名前 | 説明 |
---|---|
t | コレクションに含まれる要素の型。 |
SetLegacySerialization()
レガシー シリアル化を使用するようにシリアライザーを設定します。
宣言
[Obsolete("It is recommended to use new serialization.")]
public static void SetLegacySerialization()
コメント
バージョン12.0.0では、 MongoClient.Collection<TDocument>のメソッドを使用するときに、 MongoDB.Bson属性を持つクラスに注釈を付ける必要なく、Realm クラスの新しい自動直列化と逆直列化が導入されました。 この新しい直列化により、さまざまなタイプのデフォルトのシリアライザーが変更されました( インスタンスはDateTime Opset )。古い直列化を使用したい場合は、このメソッドを呼び出す必要があります。 あらゆる種類の直列化が必要になる前に、このメソッドを呼び出すことを忘れないでください。そうでない場合、期待どおりに動作することは保証されません。
Write(Action)
宣言
public void Write(Action action)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
アクション | アクション | トランザクション内で実行し、オブジェクトの作成、更新、または削除を行うアクション。 |
コメント
独自の一時トランザクションを作成し、 action
に渡された Lambda を実行した後にコミットします。 複数のWrite(Action)呼び出しで複数の単一のプロパティ アップデートをラップすることに注意してください。 より詳細な更新を保証する必要がある場合を除き、1 つのWrite(Action)で複数のプロパティを更新したり、複数のオブジェクトを作成したりする方が効率的です。
例
realm.Write(() =>
{
realm.Add(new Dog
{
Name = "Eddie",
Age = 5
});
});
|
このページを編集
ソースを表示
WriteAsync(Action, CancelToken)
一時的なトランザクション内でアクションを実行します。 例外がスローされない場合、トランザクションはコミットされます。 メソッドが SynchronizationContext を伴うスレッド(UI スレッドなど)から呼び出されない 場合 、同期的に動作します。
宣言
public Task WriteAsync(Action action, CancellationToken cancellationToken = default)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
アクション | アクション | トランザクション内で実行し、オブジェクトの作成、更新、または削除を行うアクション。 |
CancelToken | completedToken | 書込みトランザクション (write transaction) を開始するまでの待機を停止するための任意のキャンセル トークン。 |
戻り値
タイプ | 説明 |
---|---|
タスク | トランザクションが正常にコミットされたことを示す待機可能なタスク。 |
例
await realm.WriteAsync(() =>
{
realm.Add(new Dog
{
Breed = "Dalmatian",
});
});
|
このページを編集
ソースを表示
WriteAsync+T>(Fund_T>,<T> <T>CancelToken)
一時的なトランザクション内で委任を実行します。 例外がスローされない場合、トランザクションはコミットされます。 メソッドが SynchronizationContext を伴うスレッド(UI スレッドなど)から呼び出されない 場合 、同期的に動作します。
宣言
public Task<T> WriteAsync<T>(Func<T> function, CancellationToken cancellationToken = default)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
Function <T> | 関数 | トランザクション内で実行され、オブジェクトの作成、更新、または削除を行うために 1 つの戻り値を使用して削除します。 |
CancelToken | completedToken | 書込みトランザクション (write transaction) を開始するまでの待機を停止するための任意のキャンセル トークン。 |
戻り値
タイプ | 説明 |
---|---|
タスク<T> | トランザクションが正常にコミットされたことを示す待機可能なタスク。 タスクの結果は、 |
型パラメータ
名前 | 説明 |
---|---|
t | 入力委任によって返される型。 |
例
var dog = await realm.WriteAsync(() =>
{
return realm.Add(new Dog
{
Breed = "Dalmatian",
});
});
|
このページを編集
ソースを表示
WriteCopy(RealmConfigurationBase)
Realm の圧縮されたコピーを指定された構成内のパスに書込みます。 構成オブジェクトが null 以外のEncryptionKeyを持っている場合、コピーはそのキーで暗号化されます。
宣言
public void WriteCopy(RealmConfigurationBase config)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
RealmConfigurationBase | config | 構成。パスと、オプションでコピーの暗号化キーを指定します。 |
コメント
- 宛先ファイルがすでに存在することはできません。
- ローカル Realm を使用しており、これがトランザクション内から呼び出されると、最後のトランザクションがコミットされたときのデータではなく、現在のデータが書込まれます。
- 同期を使用する場合、コピーが書き込まれる前に、すべてのローカルの変更がサーバーと同期されている必要があります。 これは、そのファイルが新しくインストールされたアプリケーションの開始点として使用できることを確認します。 保留中のアップロードがある場合、この関数はスローします。
- Flexible Sync がすでに有効になっている場合を除き、Flexible Sync レルムへのコピーの書き込みはサポートされていません。 5 フレキシブルな同期からパーティションベースの同期への変更はサポートされていません。
- 同期するパーティションの変更はサポートされていません。
Write=T=(Fund=T=)<T><T>
宣言
public T Write<T>(Func<T> function)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
Function <T> | 関数 | トランザクション内で実行され、オブジェクトの作成、更新、または削除を行うために 1 つの戻り値を使用して削除します。 |
戻り値
タイプ | 説明 |
---|---|
t |
|
型パラメータ
名前 | 説明 |
---|---|
t | 入力委任によって返される型。 |
コメント
独自の一時トランザクションを作成し、 function
に渡された Lambda を実行した後にコミットします。 複数のWrite(Action)呼び出しで複数の単一のプロパティ アップデートをラップすることに注意してください。 より詳細な更新を保証する必要がある場合を除き、1 つのWrite(Action)で複数のプロパティを更新したり、複数のオブジェクトを作成したりする方が効率的です。
例
var dog = realm.Write(() =>
{
return realm.Add(new Dog
{
Name = "Eddie",
Age = 5
});
});
イベント
| このページを編集 ソースを表示エラー
Realm レベルの例外が発生したときにトリガーされます。
宣言
public event EventHandler<ErrorEventArgs>? Error
eventType
タイプ | 説明 |
---|---|
EventHandler<ErrorEventArgs> |
Realmchanged
Realm が変更されたときにトリガーされます(つまり、トランザクションがコミットされた場合)。
宣言
public event Realm.RealmChangedEventHandler? RealmChanged
eventType
タイプ | 説明 |
---|---|
Realm 。 RealmchangedEventHandler |