스키마 수동 정의 - .NET SDK
이 페이지의 내용
Atlas Device SDK는 더 이상 사용되지 않습니다. 자세한 내용은 지원 중단 페이지 를 참조하세요.
Realm 은 Realm 객체를 처리할 때 클래스 속성을 기반으로 각 클래스에 대한 스키마 를 생성합니다. 그러나 스키마 를 수동으로 정의해야 하는 경우가 있을 수 있으며, .NET SDK 는 이를 위한 메커니즘을 제공합니다.
중요
상속
모든 Realm 객체는 IRealmObject, IEmbeddedObject 또는 IAsymmetricObject 인터페이스에서 상속되며 partial
클래스로 선언되어야 합니다.
10.18.0 이전의 .NET SDK 버전에서는 객체는 RealmObject, EmbeddedObject 또는 AsymmetricObject 기본 클래스에서 파생됩니다. Realm 모델 정의에 대한 이 접근 방식은 계속 지원되지만 null 허용 여부 주석 과 같은 새로운 기능은 포함되지 않습니다. 향후 SDK 릴리스에서는 기본 클래스가 더 이상 사용되지 않습니다. 새로 작성하는 모든 클래스에 인터페이스를 사용해야 하며 기존 클래스의 마이그레이션을 고려해야 합니다.
스키마 속성 사용
RealmConfigurationBase 객체의 스키마 속성을 사용하여 스키마가 정의되는 방식을 제어합니다. 다음 코드 예제에서는 가장 쉬운 방법부터 가장 복잡한 방법까지 자동 구성, 수동 구성 및 두 방법의 혼합이라는 세 가지 방법을 보여줍니다.
// 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() } };