Beispiel #1
0
        public static T GetObject <T>(Realm realm, TableHandle table, IntPtr columnIndex, IntPtr rowIndex, string objectType) where T : RealmObject
        {
            var linkedRowPtr = NativeTable.GetLink(table, columnIndex, rowIndex);

            if (linkedRowPtr == IntPtr.Zero)
            {
                return(null);
            }

            return((T)realm.MakeObjectForRow(objectType, linkedRowPtr));
        }
Beispiel #2
0
        protected T GetObjectValue <T>(string propertyName) where T : RealmObject
        {
            Debug.Assert(_realm != null, "Object is not managed, but managed access was attempted");

            var rowIndex     = _rowHandle.RowIndex;
            var linkedRowPtr = NativeTable.GetLink(_metadata.Table, _metadata.ColumnIndices[propertyName], rowIndex);

            if (linkedRowPtr == IntPtr.Zero)
            {
                return(null);
            }

            Schema.Property property;
            _metadata.Schema.TryFindProperty(propertyName, out property);
            var objectType = property.ObjectType;

            return((T)_realm.MakeObjectForRow(objectType, linkedRowPtr));
        }