- Fixed a crash on iOS when creating many short-lived realms very rapidly in parallel (#653)
RealmObject.IsValid
can be called to check if a managed object has been deleted- Accessing properties on invalid objects will throw an exception rather than crash with a segfault (#662)
- The
Realm
static constructor will no longer throw aTypeLoadException
when there is an activeSystem.Reflection.Emit.AssemblyBuilder
in the currentAppDomain
. - Fixed
Attempting to JIT compile
exception when using the Notifications API on iOS devices.
No API change but sort order changes slightly with accented characters grouped together and some special characters sorting differently. "One third" now sorts ahead of "one-third".
It uses the table at ftp://ftp.unicode.org/Public/UCA/latest/allkeys.txt
It groups all characters that look visually identical, that is, it puts a, à, å together and before ø, o, ö even. This is a flaw because, for example, å should come last in Denmark. But it's the best we can do now, until we get more locale aware.
Uses core 1.1.2
RealmObject
classes will now implicitly implementINotifyPropertyChanged
if you specify the interface on your class. Thanks to Joe Brock for this contribution!
long
is supported in queries- Linker error looking for
System.String System.String::Format(System.IFormatProvider,System.String,System.Object)
fixed - Second-level descendants of
RealmObject
and static properties inRealmObject
classes now cause the weaver to properly report errors as we don't (yet) support those. - Calling
.Equals()
on standalone objects no longer throws.
- File format of Realm files is changed. Files will be automatically upgraded but opening a Realm file with older versions of Realm is not possible. NOTE: If you were using the Realm Browser specified for the old format you need to upgrade. Pick up the newest version here.
RealmResults<T>
no longer implicitly implementsINotifyCollectionChanged
. Use the newToNotifyCollectionChanged
method instead.
RealmResults<T>
can be observed for granular changes via the newSubscribeForNotifications
method.Realm
gained theWriteAsync
method which allows a write transaction to be executed on a background thread.- Realm models can now use
byte[]
properties to store binary data. RealmResults<T>
received a newToNotifyCollectionChanged
extension method which produces anObservableCollection<T>
-like wrapper suitable for MVVM data binding.
- Nullable
DateTimeOffset
properties are supported now. - Setting
null
to a string property will now correctly returnnull
- Failure to install Fody will now cause an exception like "Realms.RealmException: Fody not properly installed. RDB2_with_full_Realm.Dog is a RealmObject but has not been woven." instead of a
NullReferenceException
- The PCL
RealmConfiguration
was missing some members. - The Fody weaver is now discoverable at non-default nuget repository paths.
- Realms now refresh properly on Android when modified in other threads/processes.
- Fixes crashes under heavy combinations of threaded reads and writes.
- The two
Realm
andRealmWeaver
NuGet packages have been combined into a singleRealm
package. - The
String.Contains(String)
,String.StartsWith(String)
, andString.EndsWith(String)
methods now support variable expressions. Previously they only worked with literal strings. RealmResults<T>
now implementsINotifyCollectionChanged
by raising theCollectionChanged
event withNotifyCollectionChangedAction.Reset
when its underlying table or query result is changed by a write transaction.
- The Realm assembly weaver now submits anonymous usage data during each build, so we can track statistics for unique builders, as done with the Java, Swift and Objective-C products (issue #182)
Realm.RemoveRange<>()
andRealm.RemoveAll<>()
methods added to allow you to delete objects from a realm.Realm.Write()
method added for executing code within an implicitly committed transaction- You can now restrict the classes allowed in a given Realm using
RealmConfiguration.ObjectClasses
. - LINQ improvements:
- Simple bool searches work without having to use
== true
(issue #362) - ! operator works to negate either simple bool properties or complex expressions (issue #77)
- Count, Single and First can now be used after a Where expression, (#369) eg
realm.All<Owner>().Where(p => p.Name == "Dani").First();
as well as with a lambda expression
realm.All<Owner>().Single( p => p.Name == "Tim");
- Sorting is now provided using the
OrderBy
,OrderByDescending
,ThenBy
andThenByDescending
clauses. Sorts can be applied to results of a query from aWhere
clause or sorting the entire class by applying afterAll<>
. - The
String.Contains(String)
,String.StartsWith(String)
, andString.EndsWith(String)
methods can now be used in Where clauses. - DateTimeOffset properties can be compared in queries.
- Simple bool searches work without having to use
- Support for
armeabi
builds on old ARM V5 and V6 devices has been removed.
- Finish
RealmList.CopyTo
so you can applyToList
to related lists (issue #299) - NuGet now inserts
libwrappers.so
for Android targets using$(SolutionDir)packages
so it copes with the different relative paths in cross-platform (Xamarin Forms) app templates vs pure Android templates. Realm.RealmChanged
event notifies you of changes made to the realmRealm.Refresh()
makes sure the realm is updated with changes from other threads.
RealmConfiguration.EncryptionKey
added so files can be encrypted and existing encrypted files from other Realm sources opened (assuming you have the key)
- For PCL users, if you use
RealmConfiguration.DefaultConfiguration
without having linked a platform-specific dll, you will now get the warning message with aPlatformNotSupportedException
. Previously threw aTypeInitExepction
. - Update to Core v0.96.2 and matching ObjectStore (issue #393)
No functional changes. Just added library builds for Android 64bit targets x86_64
and arm64-v8a
.
Uses Realm core 0.96.0
- Added support for PCL so you can now use the NuGet in your PCL GUI or viewmodel libraries.
Building IOS apps targeting the simulator sometimes got an error like:
Error MT5209: Native linking error...building for iOS simulator,
but linking in object file built for OSX, for architecture i386 (MT5209)
This was fixed by removing a redundant simulator library included in NuGet
Uses Realm core 0.95.6.
Now supporting:
- Xamarin Studio on Mac - IOS and Android
- Xamarin Studio on Windows - Android
- Visual Studio on Windows - IOS and Android
- Added Android support as listed above.
- Added
RealmConfiguration
to provide reusable way to specify path and other settings. - Added
Realm.Equals
,Realm.GetHashCode
andRealm.IsSameInstance
to provide equality checking so you can confirm realms opened in the same thread are equal (shared internal instance). - Added
Realm.DeleteFiles(RealmConfiguration)
to aid in cleaning up related files. - Added nullable basic types such as
int?
. - Optimised
Realm.All<userclass>().Count()
to get rapid count of all objects of given class. - Related lists are now supported in standalone objects.
Count()
onWhere()
implemented.Any()
onWhere()
implemented.First( lambda )
andSingle( lambda )
implemented.- Significant optimisation of
Where()
to be properly lazy, was instantiating all objects internally.
[PrimaryKey]
attribute renamed[ObjectId]
.Realm.Attach(object)
renamedManage(object)
.- Lists of related objects are now declared with
IList<otherClass>
instead ofRealmList
.
- Bug that caused a linker error for iPhone simulator fixed (#375)
Requires installation from private copy of NuGet download.
- Supported IOS with Xamarin Studio only.
- Basic model and read/write operations with simple LINQ
Where
searches. - NuGet hosted as downloads from private realm/realm-dotnet repo.