Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ /

Definir manualmente um esquema - .NET SDK

Nesta página

  • Usar a propriedade do esquema

Quando o Realm processa objetos de Realm, ele gera um esquema para cada classe com base nas propriedades da classe. No entanto, pode haver momentos em que você deseja definir manualmente o esquema, e o .NET SDK fornece um mecanismo para fazer isso.

Importante

Herança

Todos os objetos do Realm herdam a partir da interface IRealmObject, IEmbeddedObject ou IAsymmetricObject e devem ser declarados partial classes.

Em versões do .NET SDK anteriores a 10.18.0, objetos derivam das classes de base RealmObject, EmbeddedObject ou AsymmetricObject . Essa abordagem para a definição do modelo Realm ainda é suportada, mas não inclui novos recursos, como as anotações de nulidade. Em uma futura versão do SDK, as classes básicas se tornarão obsoletas. Você deve usar as interfaces para quaisquer novas classes que escrever e deve considerar a migração das suas classes existentes.

Você usa a propriedade Schema do objeto RealmConfigurationBase para controlar como os esquemas são definidos. O exemplo de código a seguir mostra três maneiras de fazer isso, da mais fácil à mais complexa: configuração automática, configuração manual e uma combinação de ambos os métodos.

// 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() }
};

Voltar

Objetos embarcados

Próximo

Relacionamentos