Tipos de objetos y esquemas
Las aplicaciones de Realm modelan los datos como objetos compuestos por pares propiedad-valor, cada uno de los cuales contiene uno o más tipos de datos primitivos u otros objetos de Realm. Los objetos de Realm son esencialmente iguales a los objetos regulares, pero heredan de... RealmObject o EmbeddedObject e incluye características adicionales como vistas de datos actualizadas en tiempo real y controladores de eventos de cambio reactivo.
Cada objeto de Realm tiene un tipo que hace referencia a su clase. Los objetos del mismo tipo comparten un esquema que define sus propiedades y relaciones.
Schemas
En C#, los esquemas de objetos se definen normalmente mediante las declaraciones de clase de C#. Al inicializar Realm, detecta los objetos Realm definidos en todos los ensamblados cargados y genera los esquemas correspondientes. Este es el método más sencillo para definir un esquema y, por lo general, el menos propenso a errores. Sin embargo, este método incluye todos los objetos Realm cargados, y puede haber casos en los que solo se desee usar un subconjunto de clases o personalizar los esquemas de objetos Realm. Para ello, se puede definir un esquema mediante programación.
Nota
.NET no carga un ensamblado hasta que se hace referencia a una clase en él. Por lo tanto, si define sus modelos de objetos en un ensamblado e instancia Realm en otro, asegúrese de llamar a un método en el ensamblado que contenga los modelos de objetos antes de la inicialización. De lo contrario, Realm no detectará los objetos al cargarlos por primera vez.
Trabajar con objetos de Realm
El siguiente bloque de código muestra un esquema de objeto que describe un perro. Cada objeto perro debe incluir un Name y puede incluir opcionalmente el Age, el Breed del perro y una lista de personas que representan el Owners del perro.
public partial class Dog : IRealmObject { [] [] 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 { [] [] 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); */ }
Nota
Para definir una colección de objetos dentro de un objeto, use un IList<T> con solo un getter. No es necesario inicializarlo en el constructor, ya que realm generará una instancia de la colección la primera vez que se acceda a la propiedad.
Nota
Más ejemplos
La sección CRUD - .NET SDK proporciona ejemplos de creación, lectura, actualización, filtrado y eliminación de objetos Realm.