Release history

Latest Releases

5.0.10 04 Aug 2016 release notes

Get it from: DataObjects.Net Nuget.Org

4.6.9 03 Jul 2015 release notes

Get it from: DataObjects.Net Nuget.Org

Upcoming release

5.0.11 — December, 2016

Bug fixes
  • Incorrect translation of IndexAttribute.Filter underlying expression when it contains enum values
  • IN() operation does not create temporary table when it suppose to
  • Correct translation of IQueryable<>.Sum() when selector parameter can be omitted
  • Certain expressions containing a nullable Enum value or a field of nullable Enum type on which grouping operation is performed can lead to an exception
  • EntitySet<>.Count returns incorrect value after operations like EntitySet<>.ToList() performed during client profile session

Roadmap

Version 5.0.10 — August, 2016

  • Remap of temporary to real keys, no longer restore nulled references to an Entity
  • Fixed certain cases of session cache returning null for a valid key
  • Fixed certain cases when EntitySet could return nulls instead of removed Entities on enumeration

Version 4.6.9 — July, 2015

  • Fixed comparison of Keys
  • Provider is no longer used recursive syntax for join

Version 5.1.0 Beta 1 — January, 2015

  • Added support for asyncronous queries
  • Added virtual method SessionHandler.ExecuteQueryTasks(IEnumerable, ExecutionBehavior)
  • Method SessionHandler.ExecuteQueryTasks(IEnumerable, bool) is marked as obsolete

Version 5.0.11 RC — September, 2016

  • Full-text indexes no longer cause domain building error in DomainUpgradeMode.Skip mode
  • Fixed temporary keys remap which showed up in previous version
  • Updated version of client library
  • Added support for DateTimeOffset

Version 5.0.9 — March, 2016

  • Domain building in Skip mode no longer extracts database/schema structure at all.

Version 5.0.8 — February, 2016

  • Fixed translation of EnumerableExtensions.IsNullOrEmpty()
  • Fixed Domain building on empty database/schema
  • Fixed incorrect translation of POCO costructors in some cases

Version 5.0.7 — January, 2016

  • Fixed skipping of senseless column recreations which introduced in 5.0.7 RC2
  • Fixed certain cases of incorrect constructor usage of POCO classes in queries

Version 5.0.6 — July, 2015

  • Fixed various cases of using Inner Join instead of Left Join
  • Fixed comparison of Anonymous types with null value
  • Fixed columns optimization for queries with ternary operator
  • Fixed Key comparison

Version 5.0.5 — April, 2015

  • Improved reading decimals
  • Fixed reading decimal values which beyond the .Net decimal limits

Version 5.0.4 — March, 2015

  • Fixed incorrect rollback of transaction in some scenarios
  • Speeded up building of domain in UpgradeMode.Skip mode

Version 5.0.3 — October, 2014

  • Fixed remap of temporary keys
  • No longer referenced entities remove correctly in client profile session
  • Fixed weaving of implementations of types from third-party libraries
  • Enitites restores their states after persisting failed
  • Fixed incorrect sorting of insert operations in some cases
  • Fixed substraction of dates
  • Fixed substraction of dates
  • Fixed inserts and updates of fields which definded in ancestor

Version 5.0.2 — September, 2014

  • Association between Key fields is no longer creates additional index
  • Fixed behavior when DataObjects.Net puts type identifier to the wrong column
  • Fixed incorrect behavior of left join in some cases
  • Fixed clone creation of PhoneNumberConstraint validator
  • Fixed incorrect statement of multiple joins

Version 5.0.0 — August, 2014

  • Delayed/Future queries are no longer cached closure variables values in some scenarios
  • Secondary indexes which includes inherited fields are no longer ignored in some scenarios

Version 4.6.8 — August, 2014

  • Fixed handling of qeries with multiple IN operations in some scenarios
  • Fixed handling of query to EntitySet which associates with field of Structure
  • Added map of type identifiers UpgradeContext.UserDefinedTypeMap
  • Fixed translation of OnUpdate and OnDelete actions for foreign keys

Version 4.6.7 — June, 2014

  • Added UpgradeHandler.TypesMovementsAutoDetection option
  • Fixed handling of bit operations for long type for many providers
  • Fixed handling of recycled and recycled nested types under some scenarios
  • Fixed handling of queries with muliple IN operations
  • Fixed mapping names of columns under some scenarios
  • Fixed dropping of default constraint under some scenarios

Version 4.6.6 — April, 2014

  • Added DomainConfiguration.MultidatabaseKeys setting
  • Fixed incorrect EntitySet caching in ClientProfile
  • Fixed construction of inherited partial indexes
  • Fixed NRE when using partial indexes over abstract types
  • Fixed incorrect type id upgrade when type is moved to another namespace
  • Exclude many standard schemes during extraction

Version 4.6.5 — January, 2014

  • Fixed version validation for entities without explicit version columns
  • Fixed version validation for decimal version fields
  • Optimized aggregate translation in complex scenarios
  • Fixed problem with access to nullable enum columns in final projection
  • Fixed problem with missing calculated columns in final projection
  • Fixed materialization of delayed queries with parameters in final projection
  • Implemented merging of duplicated query parameters
  • Improved handling of unique index conflicts during persist
  • Implemented query batching when ValidateEntityVersions option is enabled
  • Optimized queries that are executed during initialization
  • Added support for full text data type columns
  • Added ignoring of filetable objects during upgrade and schema validation
  • Fixed translation of DateTime operations in LINQ
  • Fixed translation of DateTime operations in LINQ
  • Fixed translation of DateTime operations in LINQ

Version 4.6.4 — September, 2013

  • Fixed regression in Session.Query.ExecuteDelayed introduced in 4.6.4 RC
  • Fixed removal of self-referenced entities
  • Fixed extraction of multi-column primary keys

Version 4.6.3 — February, 2013

  • Fixed incorrect column order in queries after certain schema upgrades
  • Added DomainConfiguration.NativeLibraryCacheFolder setting
  • Improved initialization time of TupleDescriptors

Version 4.6.2 — November, 2012

  • Add DomainConfiguration.AllowCyclicDatabaseDependencies option

Version 4.6.1 — November, 2012

  • Fix loading/storing of the domain model when multi-database mode is enabled
  • Fix assignment of MappingSchema/MappingDatabase for persistent interfaces
  • Improve exception message for missing default schema in domain configuration
  • Fix translation of predicates similar to (object) NullableBool == (object) null
  • Fix translation of Union() over boolean columns under certain conditions
  • Don't enforce implicit non-nullable/length constraints in inconsistent sessions
  • Import DataObjects.Net.targets conditionally when using NuGet package
  • Make UpgradeHandler.IsFieldAvailable virtual
  • Treat errors 3966 and 3971 as serialization failure

Version 4.6.0 — October, 2012

  • Temporary limit maximal PostSharp version to 2.1.7.16

Version 4.5.8 — September, 2013

  • Fixed invalid key comparison under certain conditions
  • Fixed EntitySet caching invalid state within DisableSaveChanges() scope
  • Fixed overflow when storing large TimeSpan values
  • Fixed invalid default values for SessionConfiguration.DefaultIsolationLevel and SessionConfiguration.Options
  • Fixed support for referencing connection strings in SessionConfiguration
  • Fixed translation of bitwise operations
  • Fixed translation of DateTime.DayOfWeek and DateTime.DayOfYear

Version 4.5.7 — February, 2013

  • Fixed translation of GroupBy() over columns with same name
  • Improved diagnostic message when more than one upgrade handler is provided
  • Fixed error after changing case of a persistent field
  • Wrap exceptions occured within user code with TargetInvocationException
  • Fixed handling of validation aspects on generic types
  • Fixed translation of In/Contains over field obtained with `as` operator
  • Fixed translation of In/Contains over arbitrary expressions
  • Fixed projection to DTO with inheritance
  • Fixed translation of DateTime properties access on certain expressions
  • Fixed accessing of IGrouping.Key in subqueries
  • Fixed implementation of "truncate" operation on DateTime expressions

Version 4.5.6 — November, 2012

  • Fix translation of predicates similar to (object) NullableBool == (object) null
  • Fix translation of Union() over boolean columns under certain conditions
  • Don't enforce implicit non-nullable/length constraints in inconsistent sessions
  • Import DataObjects.Net.targets conditionally when using NuGet package
  • Make UpgradeHandler.IsFieldAvailable virtual
  • Treat errors 3966 and 3971 as serialization failure

Version 4.5.5 — October, 2012

  • Temporary limit maximal PostSharp version to 2.1.7.16

Version 4.5.4 — August, 2012

  • Added community edition

Version 4.5 — April 13, 2012

  • Access control/Security extension
  • Security
  • Reprocessing
  • Bulk pperations
  • LINQPad driver
  • MySQL provider
  • Firebird provider
  • JustOneDB provider

Version 4.4.2 — February 27, 2012

  • Migration to PostSharp 2.1
  • Performance and memory consumption optimization
  • New Project upgrade tool

Version 4.4.1 — December 19, 2011

  • Basic support for SqlGeometry & SqlGeography types, spatial index support in SQL Server driver.
  • Precise control over reference properties indexing
  • Partial (filtered) indexes based on lambda syntax
  • Сontrol over primary and regular index clustering
  • Creating and registering LINQ extensions made more user-friendly
  • Attributes overriding

Version 4.4 — February 11, 2011

  • 'Unit of work' pattern support
  • Visual Basic
  • F#
  • Localization
  • PostgreSQL 9.0 support
  • Xtensive.Practices project
  • Reduced number of assemblies
  • Domain, Session, Query, Prefetch API simplification
  • Encrypted connection strings
  • And much more

Version 4.3.7 — January 29, 2011

  • PostgreSQL 9.0 support
  • Encrypted connection strings
  • UUID datatype for PostgreSQL 8.3 and higher
  • Persistent interfaces and association attributes fix
  • Explicit rows ordering fix
  • Nested transactions in MS SQL Server CE fix
  • Constraints validation fix

Version 4.3.6 — December 9, 2010

  • Visual Basic support
  • EntitySet now implements IValidationAware
  • SessionOptions.ReadRemovedObjects is added
  • Several bugs are fixed in LINQ translator, Upgrade, PostgreSQL & MS SQLServer providers

Version 4.3.5 — September 15, 2010

  • Product reference integrates with Visual Studio 2010 help system
  • Operations framework is redesigned to track and replay the operations in three modes
  • Session-level events were moved to Session.Events member (breaking change)
  • DisconnectedState is extended
  • Schema upgrade / mapping layer now supports FieldAttribute.DefaultValue and NullableOnUpgrade properties
  • Duration of domain building process was significantly reduced
  • VersionAttribute was made more flexible
  • Several bugs were fixed in LINQ translator
  • Schema upgrade layer made more stable

Version 4.3 — July 12, 2010

  • .NET 4.0 and Visual Studio 2010 support
  • v4.3 uses PostSharp 2 instead of PostSharp 1
  • New Tuples engine that relies on generics instead of Tuple and TupleDescriptor classes generation with System.Reflection.Emit
  • Domain.Build() also works nearly twice faster
  • DataObjects.Net became commercial

Version 4.2 — March 2, 2010

  • Manual
  • Unified versioning support
  • DisconnectedState
  • MS SQL Azure, Oracle, MS SQL Server CE providers
  • Full-text support for MS SQL Server & PostreSQL
  • Object-to-Object mapper
  • Future queries, super batching, prefetching
  • Legacy domain upgrade mode

Version 4.1 — November, 2009

  • Persistent interfaces
  • Validation
  • Integrated PostSharp
  • Integrated logging
  • Support for local collection in LINQ queries

Version 4.0.5 — August 15, 2009

  • Performance-related updates
  • Better ASP.NET support
  • Domain modules
  • Lot’s of fixes

Version 4.0 — June 9, 2009

  • Initial release of DataObjects.Net 4

Previous versions

Version 3.9.5 — January 7, 2007

  • Query Profiler and query profiling API
  • DataSource control and BindingSource component
  • Updated BindingManager component
  • Validation service
  • Access validators
  • Generators (table-based) are now used to provide new ID values

Version 3.9.1 — October 30, 2006

  • Native & emulated partitioning is added. Range, List, Hash & Object types are supported.
  • Key is added, it is intended to substitute long ID property.

Version 3.8.5 — March 11, 2006

  • varchar(max)/varbinary(max) database column types
  • Generic methods support

Version 3.8 — December 3, 2005

  • Full support of .Net Framework 2.0 and Visual Studio 2005
  • Full-text indexing improvements
  • Offline layer improvements
  • Indexing and unique constraints full support

Version 3.7 — October 18, 2005

  • .NET Framework 2.0 Generics & Nullable types support
  • UniqueValidator is added

Version 3.6 — September 1, 2005

  • GlobalCache improvements
  • Transactions performance counters

Version 3.5 — July 15, 2005

  • MethodCallDescriptors instead of UpdateActions
  • BusinessMethod, OfflineBusinessMethod attributes

Version 3.4 — June 30, 2005

  • .NET Framework 2.0 support
  • Parallel database schema extraction & domain model build process
  • Microsoft SQL Server 2005 (Yukon) support
  • Microsoft Access driver is added
  • Mono support

Version 3.3 — April 28, 2005

  • Offline layer (disconnected ObjectSets)
  • DotLucene full-text search engine
  • TrackingSet
  • IQueryEventWatcher interface

Version 3.0 — December 31, 2004

  • Firebird database driver
  • Versionizing mode
  • Domain.GlobalCache
  • Session events

Version 2.6 — November 1, 2004

  • DataObjects.NET.UI.BindingManager for ASP.NET\WindowsForms controls
  • Delegate properties are fully supported
  • Clustered indexes
  • Full-text indexing layer was seriously improved
  • Subqueries are now supported in Query

Version 2.5 — September 28, 2004

  • Performance improvements
  • Paging support in collections
  • DataObjects.NET.Data.Adapter is introduced
  • Paired ValueTypeCollections
  • Optimized instance removal process
  • Unified Preloading is added

Version 2.3 — July 16, 2004

  • Optimized proxy assembly compilation and loading
  • Query\SqlQuery improvements
  • Foreign keys support
  • Property validation, correction, type modification & storage value modification support

Version 2.2 — May 3, 2004

  • Automatic indexing of reference fields
  • Support for collations in Sql Server
  • Performance improvements
  • ValueTypes, ValueTypeCollections support
  • OQL improvements: joins, type casts, collection-based queries
  • Partial loading in DataObjectCollection

Version 2.0 — December 29, 2003

  • Built-in security system
  • Persistent interfaces support
  • Runtime services
  • Improved full-text indexing and search
  • Improved serialization layer
  • Samples were seriously updated

Version 1.8.1 — November 25, 2003

  • Automatic transactions are improved
  • SessionBoundObject, TransactionalObject are introduced

Version 1.7.1 — November 18, 2003

  • Delayed updates
  • QueryResult improvement
  • Optimized caching

Version 1.6.1 — October 31, 2003

  • DataServices
  • DoPetShop sample

Version 1.5.1 — October 21, 2003

  • Oracle support
  • OQL query engine
  • Serialization support is significantly improved

Version 1.3.1 — September 24, 2003

  • Distributed transactions
  • Serialization support

Version 1.2 — September 11, 2003

  • Automatic transactions
  • Reprocessing on Deadlock exceptions
  • Nested transactions

Version 1.1 — September 2, 2003

  • SAP DB support
  • New ASP.NET sample is added

Version 1.0 — July 15, 2003
After several months of hard work we released the first version of DataObjects.Net