Releases: realm/realm-dotnet
0.77.2
0.77.2 (2016-08-11)
Enhancements
- Setting your Build Verbosity to
Detailed
orNormal
will now display a message for every property woven, which can be useful if you suspect errors with Fody weaving. - Better exception messages will help diagnose EmptySchema problems (#739)
- Schema construction has been streamlined to reduce overhead when opening a Realm
- Schema version numbers now start at 0 rather than UInt64.MaxValue
Bug fixes
RealmResults<T>
should implementIQueryable.Provider
implicitly (#752)- Realms that close implicitly will no longer invalidate other instances (#746)
DateTimeOffset
precision bug fixed (#756)
Uses core 1.4.2
0.77.1 - Urgent fix to 0.77.0
Primarily released as a fix to 0.77.0 which had a problem building PCL libraries.
A hard crash at compile time caused failure weaving the new IList
based lists (#715).
With that fixed, a further change was detected in the signature of RealmResults
implementing IOrderedQueryable<T>
instead of IQueryable<T>
which PCL built libraries to fail to match the platform builds.
Minor Changes
- Exception messages caused by using incompatible arguments in LINQ now include the offending argument (#719)
Uses core 1.4.0
0.77.0 - IList support, dynamic API
0.77.0
Breaking Changes
- Sort order change in previous version was reverted.
Major Changes
- It is now possible to introspect the schema of a Realm. (#645)
- The Realm class received overloads for
Realm.CreateObject
andRealm.All
that accept string arguments instead of generic parameters, enabling use of thedynamic
keyword with objects whose exact type is not known at compile time. (#646) - To Many relationships can now be declared with an
IList<DestClass>
rather than requiringRealmList<DestClass>
. This is significantly faster than usingRealmList
due to caching the list. (Issue #287) - Creating standalone objects with lists of related objects is now possible. Passing such an object into
Realm.Manage
will cause the entire object graph from that object down to become managed.
Minor Changes
- Fixed a crash on iOS when creating many short-lived realms very rapidly in parallel (Issue #653)
- 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)
Bug fixes
- Exceptions thrown when creating a
Realm
no longer leave a leaking handle (Issue #503)
Uses core 1.4.0
0.76.1
Minor Changes
- 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.
Breaking Changes
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
0.76.0 INotifyPropertyChanged
Major Changes
RealmObject
classes will now implicitly implementINotifyPropertyChanged
if you specify the interface on your class. Thanks to Joe Brock for this contribution!
Minor Changes
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.
0.75.0 Updated file format
Breaking Changes
- 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.
RealmResults<T>
no longer implicitly implementsINotifyCollectionChanged
. Use the newToNotifyCollectionChanged
method instead.
Major Changes
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.
Minor Fixes
- 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.
v0.74.1 Single NuGet
Minor Fixes
- Realms now refresh properly on Android when modified in other threads/processes.
- Fixes crashes under heavy combinations of threaded reads and writes.
- The
String.Contains(String)
,String.StartsWith(String)
, andString.EndsWith(String)
methods now support variable expressions. Previously they only worked with literal strings.
Minor Changes
- The two
Realm
andRealmWeaver
NuGet packages have been combined into a singleRealm
package. RealmResults<T>
now implementsINotifyCollectionChanged
by raising theCollectionChanged
event withNotifyCollectionChangedAction.Reset
when its underlying table or query result is changed by a write transaction.
v0.74.0 Mostly improving LINQ Searching and Sorting
Major Changes
- 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.
Minor Changes
- 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.
v0.73.0 Adding Encryption
Major Changes
RealmConfiguration.EncryptionKey
added so files can be encrypted and existing encrypted files from other Realm sources opened (assuming you have the key).
Minor Fixes
- 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)
v0.72.1 Adding 64bit Android
This minor release only adds changes for Android users, adding the ABIs arm64-v8a
and x86_64
for 64 bit devices.
See the Xamarin Android CPU page for more details on the meanings of these ABI codes.
No functional changes were made, just recompilation and packaging with the core binaries added.