Class RealmObjectBase
Base for any object that can be persisted in a Realm.
Namespace: Realms
Assembly: Realm.dll
Syntax
[Preserve(AllMembers = true)]
public abstract class RealmObjectBase : IRealmObjectBase, ISettableManagedAccessor, INotifyPropertyChanged, IReflectableType
Properties
| Improve this Doc View SourceBacklinksCount
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.
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. |
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 |
|
See Also
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 |
|
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 |
|
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. |
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 SourceOnManaged()
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.
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).
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. |
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
Events
| Improve this Doc View SourcePropertyChanged
Occurs when a property value changes.
Declaration
public event PropertyChangedEventHandler PropertyChanged
Event Type
Type | Description |
---|---|
PropertyChangedEventHandler |
Explicit Interface Implementations
| Improve this Doc View SourceIRealmObjectBase.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 |
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 |
Boolean | skipDefaults | If set to |