Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

スキーマの手動定義 - .NET SDK

項目一覧

  • スキーマ プロパティの使用

Realm は Realm オブジェクトを処理する際、クラスのプロパティに基づいて各クラスのスキーマを生成します。 ただし、スキーマを手動で定義したい場合もあります。.NET SDK はそのためのメカニズムを提供します。

重要

継承

すべての Realm オブジェクトは、 IRealmObjectIEMededObject 、またはIAmetricObjectインターフェースから継承し、 partialクラスを宣言する必要があります。

10.18.0より前のバージョンの .NET SDK では、 オブジェクトは、 RealmObject埋め込みオブジェクト 、またはAmetricObject基本クラスから派生します。 Realm モデル定義へのこのアプローチは引き続きサポートされていますが、 null 可能性注釈などの新機能は含まれていません。 将来の SDK リリースでは、基本クラスは非推奨になる予定です。 作成する新しいクラスには インターフェースを使用し、既存のクラスの移行を検討する必要があります。

RealmConfigurationBase オブジェクトの schema プロパティを使用して、 スキーマ の定義方法を制御します。次のコード例では、これを行うための 3 つの方法を、簡単な方法から最も複雑な方法まで、自動構成、手動構成、および両方の方法の組み合わせです。

// By default, all loaded RealmObject classes are included.
// Use the RealmConfiguration when you want to
// construct a schema for only specific C# classes:
var config = new RealmConfiguration
{
Schema = new[] { typeof(ClassA), typeof(ClassB) }
};
// More advanced: construct the schema manually
var manualConfig = new RealmConfiguration
{
Schema = new RealmSchema.Builder
{
new Builder("ClassA", ObjectType.EmbeddedObject)
{
Property.Primitive("Id",
RealmValueType.Guid,
isPrimaryKey: true),
Property.Primitive("LastName",
RealmValueType.String,
isNullable: true,
indexType: IndexType.General)
}
}
};
// Most advanced: mix and match
var mixedSchema = new ObjectSchema.Builder(typeof(ClassA));
mixedSchema.Add(Property.FromType<int>("ThisIsNotInTheCSharpClass"));
// `mixedSchema` now has all of the properties of the ClassA class
// and an extra integer property called "ThisIsNotInTheCSharpClass"
var mixedConfig = new RealmConfiguration
{
Schema = new[] { mixedSchema.Build() }
};

戻る

埋め込みオブジェクト