Search Results for

    Show / Hide Table of Contents

    Class RealmObjectBase

    Base for any object that can be persisted in a Realm.

    Inheritance
    Object
    RealmObjectBase
    AsymmetricObject
    EmbeddedObject
    RealmObject
    Implements
    IRealmObjectBase
    ISettableManagedAccessor
    INotifyPropertyChanged
    IReflectableType
    Namespace: Realms
    Assembly: Realm.dll
    Syntax
    [Preserve(AllMembers = true)]
    public abstract class RealmObjectBase : IRealmObjectBase, ISettableManagedAccessor, INotifyPropertyChanged, IReflectableType

    Properties

    | Improve this Doc View Source

    BacklinksCount

    Gets the number of objects referring to this one via either a to-one or to-many relationship.

    Declaration
    [IgnoreDataMember]
    public int BacklinksCount { get; }
    Property Value
    Type Description
    Int32

    The number of objects referring to this one.

    Remarks

    This property is not observable so the PropertyChanged event will not fire when its value changes.

    | Improve this Doc View Source

    DynamicApi

    Gets an object encompassing the dynamic API for this RealmObjectBase instance.

    Declaration
    [IgnoreDataMember]
    public DynamicObjectApi DynamicApi { get; }
    Property Value
    Type Description
    DynamicObjectApi

    A Realms.Dynamic instance that wraps this RealmObject.

    | Improve this Doc View Source

    IsFrozen

    Gets a value indicating whether this object is frozen. Frozen objects are immutable and will not update when writes are made to the Realm. Unlike live objects, frozen objects can be used across threads.

    Declaration
    [IgnoreDataMember]
    public bool IsFrozen { get; }
    Property Value
    Type Description
    Boolean

    true if the object is frozen and immutable; false otherwise.

    See Also
    Freeze<T>(T)
    | Improve this Doc View Source

    IsManaged

    Gets a value indicating whether the object has been associated with a Realm, either at creation or via Add<T>(T, Boolean).

    Declaration
    [IgnoreDataMember]
    public bool IsManaged { get; }
    Property Value
    Type Description
    Boolean

    true if object belongs to a Realm; false if standalone.

    | Improve this Doc View Source

    IsValid

    Gets a value indicating whether this object is managed and represents a row in the database. If a managed object has been removed from the Realm, it is no longer valid and accessing properties on it will throw an exception. Unmanaged objects are always considered valid.

    Declaration
    [IgnoreDataMember]
    public bool IsValid { get; }
    Property Value
    Type Description
    Boolean

    true if managed and part of the Realm or unmanaged; false if managed but deleted.

    | Improve this Doc View Source

    ObjectSchema

    Gets the ObjectSchema instance that describes how the Realm this object belongs to sees it.

    Declaration
    [IgnoreDataMember]
    public ObjectSchema ObjectSchema { get; }
    Property Value
    Type Description
    ObjectSchema

    A collection of properties describing the underlying schema of this object.

    | Improve this Doc View Source

    Realm

    Gets the Realm instance this object belongs to, or null if it is unmanaged.

    Declaration
    [IgnoreDataMember]
    public Realm Realm { get; }
    Property Value
    Type Description
    Realm

    The Realm instance this object belongs to.

    Methods

    | Improve this Doc View Source

    OnManaged()

    Called when the object has been managed by a Realm.

    Declaration
    protected virtual void OnManaged()
    Remarks

    This method will be called either when a managed object is materialized or when an unmanaged object has been added to the Realm. It can be useful for providing some initialization logic as when the constructor is invoked, it is not yet clear whether the object is managed or not.

    | Improve this Doc View Source

    OnPropertyChanged(String)

    Called when a property has changed on this class.

    Declaration
    protected virtual void OnPropertyChanged(string propertyName)
    Parameters
    Type Name Description
    String propertyName

    The name of the property.

    Remarks

    For this method to be called, you need to have first subscribed to PropertyChanged. This can be used to react to changes to the current object, e.g. raising PropertyChanged for computed properties.

    Examples
    class MyClass : RealmObject
    {
        public int StatusCodeRaw { get; set; }
        public StatusCodeEnum StatusCode => (StatusCodeEnum)StatusCodeRaw;
        protected override void OnPropertyChanged(string propertyName)
        {
            if (propertyName == nameof(StatusCodeRaw))
            {
                RaisePropertyChanged(nameof(StatusCode));
            }
        }
    }

    Here, we have a computed property that depends on a persisted one. In order to notify any PropertyChanged subscribers that StatusCode has changed, we override OnPropertyChanged(String) and raise PropertyChanged manually by calling RaisePropertyChanged(String).

    | Improve this Doc View Source

    RaisePropertyChanged(String)

    Allows you to raise the PropertyChanged event.

    Declaration
    protected void RaisePropertyChanged(string propertyName = null)
    Parameters
    Type Name Description
    String propertyName

    The name of the property that has changed. If not specified, we'll use the caller name.

    | Improve this Doc View Source

    ToString()

    Returns a string that represents the current object.

    Declaration
    public override string ToString()
    Returns
    Type Description
    String

    A string that represents the current object.

    Overrides
    Object.ToString()

    Events

    | Improve this Doc View Source

    PropertyChanged

    Occurs when a property value changes.

    Declaration
    public event PropertyChangedEventHandler PropertyChanged
    Event Type
    Type Description
    PropertyChangedEventHandler

    Explicit Interface Implementations

    | Improve this Doc View Source

    IRealmObjectBase.Accessor

    Gets the accessor that encapsulates the methods and properties used by the object for its functioning.

    Declaration
    [IgnoreDataMember]
    IRealmAccessor IRealmObjectBase.Accessor { get; }
    Returns
    Type Description
    IRealmAccessor
    | Improve this Doc View Source

    ISettableManagedAccessor.SetManagedAccessor(IRealmAccessor, IRealmObjectHelper, Boolean, Boolean)

    Sets the accessor for the newly managed object and possibly adds the object to the realm.

    Declaration
    void ISettableManagedAccessor.SetManagedAccessor(IRealmAccessor accessor, IRealmObjectHelper helper, bool update, bool skipDefaults)
    Parameters
    Type Name Description
    IRealmAccessor accessor

    The accessor to set.

    Realms.Weaving.IRealmObjectHelper helper

    TheRealms.Weaving.IRealmObjectHelper implementation to use for copying the object to realm.

    Boolean update

    If set to true, update the existing value (if any). Otherwise, try to add and throw if an object with the same primary key already exists.

    Boolean skipDefaults

    If set to true will not invoke the setters of properties that have default values. Generally, should be true for newly created objects and false when updating existing ones.

    Implements

    IRealmObjectBase
    ISettableManagedAccessor
    System.ComponentModel.INotifyPropertyChanged
    System.Reflection.IReflectableType

    Extension Methods

    FrozenObjectsExtensions.Freeze<T>(T)
    • Improve this Doc
    • View Source
    In This Article
    Back to top Copyright © 2020 Realm
    Generated by DocFX