10.4.0 - Bug fixes and small improvements
Fixed
- Fixed an issue that would cause
Logger.Default
on Unity to always revert toDebug.Log
, even when a custom logger was set. (Issue #2481) - Fixed an issue where
Logger.Console
on Unity would still useConsole.WriteLine
instead ofDebug.Log
. (Issue #2481) - Added serialization annotations to RealmObjectBase to prevent Newtonsoft.Json and similar serializers from attempting to serialize the base properties. (Issue #2579)
- Fixed an issue that would cause an
InvalidOperationException
when removing an element from an UI-bound collection in WPF. (Issue #1903) - User profile now correctly persists between runs. (Core upgrade)
- Fixed a crash when delivering notifications over a nested hierarchy of lists of RealmValue that contain RealmObject inheritors. (Core upgrade)
- Fixed a crash when an object which is linked to by a RealmValue property is invalidated (sync only). (Core upgrade)
- Fixes prior_size history corruption when replacing an embedded object in a list. (Core upgrade)
- Fixed an assertion failure in the sync client when applying an AddColumn instruction for a RealmValue property when that property already exists locally. (Core upgrade)
- Fixed an
Invalid data type
assertion failure in the sync client when applying anAddColumn
instruction for aRealmValue
property when that property already exists locally. (Core upgrade)
Enhancements
-
Added two extension methods on
IList
to get anIQueryable
collection wrapping the list:list.AsRealmQueryable()
allows you to get aIQueryable<T>
fromIList<T>
that can be then treated as a regular queryable collection and filtered/ordered with LINQ orFilter(string)
.list.Filter(query, arguments)
will filter the list and return the filtered collection. It is roughly equivalent tolist.AsRealmQueryable().Filter(query, arguments)
.
The resulting queryable collection will behave identically to the results obtained by calling
realm.All<T>()
, i.e. it will emit notifications when it changes and automatically update itself. (Issue #1499) -
Added a cache for the Realm schema. This will speed up
Realm.GetInstance
invocations whereRealmConfiguration.ObjectClasses
is explicitly set. The speed gains will depend on the number and complexity of your model classes. A reference benchmark that tests a schema containing all valid Realm property types showed a 25% speed increase of Realm.GetInstance. (Issue #2194) -
Improve performance of creating collection notifiers for Realms with a complex schema. In the SDKs this means that the first run of a synchronous query, first call to subscribe for notifications will do significantly less work on the calling thread.
-
Improve performance of calculating changesets for notifications, particularly for deeply nested object graphs and objects which have List or Set properties with small numbers of objects in the collection.
-
Query parser now accepts
BETWEEN
operator. Can be used likerealm.All<Person>().Filter("Age BETWEEN {20, 60}")
which means "'Age' must be in the open interval ]20;60[". (Core upgrade)
Compatibility
- Realm Studio: 11.0.0 or later.