Microsoft SQL Server 2016 is now officially supported by Telerik Data Access
Changed
Runtime: Improved memory usage by avoiding back references in Telerik Data Access internals
Runtime: Allowed more efficient concurrent usage of contexts, avoiding finalizable objects where possible - Improved the achievable concurrency by restricting the amount of work the GC has to perform. The benefits are reduced time spent in the GC and more direct reclamation of unreachable memory, resulting in more stable behavior of the working set and improved GC gen0/gen1 ratio under load.
Fixed
OpenAccessContext.GetLastConflicts() will no longer swallow exceptions
Improved prefetching of collections to avoid data inconsistencies - When prefetching is used (via .Include() or .LoadWith()) and there is no prefetched data in the first 50 results (or 500 in case of second level cache), the reading step can fail with inconsistenly read data. The code change needed for this bug fix also improves the prefetching behavior in that there are more paralllel fetches used now and point fetches are avoided.
Improved handling of expections happening on database driver level as part of the integrated connection pool management - Now NullReferenceException is avoided and original exception can be obtained.
Fixed implementation of OpenAccessContext.GetOriginalValues() for collections and dictionaries - If OpenAccessContext.GetOriginalValues() is called on a persistent field or property of type List or Dictionary<k,v> sometimes the latest in-memory version of the data was returned and not the last persisted version. Calling it after a FlushChanges followed by a change to the collection or dictionary the Runtime now will persist the change consistently.</k,v>
Context.SaveChanges(AggregateAll) flag is not respected and only the first OptimisticVerificationException is thrown - The context method SaveChanges(AggregateAll) was not collecting all errors when OptimisiticVerificationExceptions occur. Now the behavior can be switched between 'AggregateAll' and 'FailFast'. Only OptimisticVerificationExceptions will be aggregated, other kinds of exeptions will still have the default 'FailFast' behavior.
TrackedList/TrackedBindingList support improvements - Improved integration of TrackedList<T> and TrackedBindingList<T> and runtime logic maintaining original values to avoid side effects added in virtual methods of the list types.
Parallel Fetching changes - Disabled parallel fetching when Skip, Take, Single(OrDefault) and First(OrDefault) are present in an outer LINQ query
Memory leak in Second Level Cache - Resolved a missing clean-up of temporary data structures in Second Level Cache related to flushed data