Exemple #1
0
        private void AddQueryEqual(QueryHandle queryHandle, string columnName, object value, Type columnType)
        {
            var propertyIndex = _metadata.PropertyIndices[columnName];

            switch (value)
            {
            case null:
            case RealmValue rv when rv.Type == RealmValueType.Null:
                queryHandle.NullEqual(_realm.SharedRealmHandle, propertyIndex);
                break;

            case string stringValue:
                queryHandle.StringEqual(_realm.SharedRealmHandle, propertyIndex, stringValue, caseSensitive: true);
                break;

            case RealmValueType realmValueType:
                queryHandle.RealmValueTypeEqual(_realm.SharedRealmHandle, propertyIndex, realmValueType);
                break;

            default:
                // The other types aren't handled by the switch because of potential compiler applied conversions
                AddQueryForConvertibleTypes(_realm.SharedRealmHandle, propertyIndex, value, columnType, queryHandle.ValueEqual);
                break;
            }
        }