Menu Docs

Página inicial do DocsDesenvolver aplicaçõesAtlas Device SDKs

Modelos e esquemas de objetos - .NET SDK

Nesta página

  • Tipos e esquemas de objetos
  • Esquemas
  • Trabalhando com objetos de domínio

Os aplicativos Realm modelam os dados como objetos compostos de pares propriedade-valor, cada um contendo um ou mais tipos de dados primitivos ou outros objetos Realm. Os objetos de Realm são essencialmente os mesmos que os objetos regulares, mas herdam de RealmObject ou EmbeddedObject e incluem funcionalidades adicionais, como exibições de dados de atualização em tempo real e manipuladores de eventos de alteração reativos.

Cada objeto do Realm tem um tipo de objeto que se refere à classe do objeto. Objetos do mesmo tipo compartilham um esquema de objeto que define as propriedades e relacionamentos desses objetos.

Em C#, você normalmente define esquemas de objetos usando as declarações de classe C#. Quando o Realm é inicializado, ele descobre os objetos do Realm definidos em todos os conjuntos que foram carregados e gera esquemas adequadamente. Essa é a abordagem mais simples para definir um esquema e, geralmente, é a menos propensa a erros. No entanto, essa abordagem inclui todos os objetos de Realm carregados e pode haver casos em que você só deseja usar um subconjunto de classes ou personalizar esquemas de objetos de Realm. Para fazer isso, você pode definir um esquema programaticamente.

Observação

O .NET não carrega um assembly até que você faça referência a uma classe nele, portanto, se você definir seus modelos de objeto em um assembly e instanciar o Realm em outro, certifique-se de chamar um método no assembly que contém os modelos de objeto antes da inicialização. Caso contrário, o Realm não descobrirá os objetos quando carregar pela primeira vez.

O seguinte bloco de código mostra um esquema de objeto que descreve um objeto Dog. Cada objeto Dog deve incluir um Name e, opcionalmente, pode incluir Age, Breed do cachorro e uma lista de pessoas que representa os Owners do cachorro.

public partial class Dog : IRealmObject
{
[PrimaryKey]
[MapTo("_id")]
public ObjectId Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Breed { get; set; }
public IList<Person> Owners { get; }
}
public partial class Person : IRealmObject
{
[PrimaryKey]
[MapTo("_id")]
public ObjectId Id { get; set; }
public string Name { get; set; }
// etc...
/* To add items to the IList<T>:
var dog = new Dog();
var caleb = new Person { Name = "Caleb" };
dog.Owners.Add(caleb);
*/
}

Observação

Para definir uma coleção de objetos dentro de um objeto, use um IList<T> com apenas uma getter. Você não precisa inicializá-lo no construtor, pois o domínio gerará uma instância de coleta na primeira vez que a propriedade for acessada.

Observação

Outros exemplos

A seção CRUD - .NET SDK fornece exemplos de criação, leitura, atualização, filtragem e exclusão de objetos do Realm.

← Modelos de objetos - .NET SDK