Skip to content

Releases: DataObjects-NET/dataobjects-net

7.2.0-Beta-2

27 Apr 05:38
Compare
Choose a tag to compare
7.2.0-Beta-2 Pre-release
Pre-release
  • [main] Upgrade hints change names of constructors' string parameters for better understanding of what suppose to be in them.
  • [main] Improved string operations Trim/TrimStart/TrimEnd support
  • [main] Obsolete DomainConfiguration.DefauktForeignKeyMode const removed, the correctly named constant still exists
  • [main] Obsolete SqlPersistTask constructors removed
  • [main] Obsolete AggregateProvider constructor removed
  • [main] Obsolete CalculateProvider constructor removed
  • [main] Updated BitFaster.Caching to version 2.5.3
  • [firebird] Updated client library to version 10.3.2
  • [mysql] SqlDml.NullIf function now correctly translated
  • [mysql] Improved support for string.PadLeft/PadRight opertaions
  • [mysql] Updated client library to version 8.4.0
  • [postgresql] Updated client library to version 9.0.3
  • [postgresql] Improved .Milliseconds part translation for types that have the part
  • [postgresql] Improved TimeSpan.TotalMilliseconds translation
  • [postgresql] AppContext switch "Npgsql.EnableLegacyTimestampBehavior" is turned off if user hasn't set it before Domain build
  • [postgresql] Both states of "Npgsql.EnableLegacyTimestampBehavior" AppContext switch are supported
  • [postgresql] AppContext switch "Npgsql.DisableDateTimeInfinityConversions" is turned on if user hasn't set it before Domain build
  • [postgresql] Supported both states of "Npgsql.DisableDateTimeInfinityConversions" AppContext switch, though "true" is recommended
  • [postgresql] When infinity conversions are enabled, extra statements will be applied to certain operations to return expected results
  • [postgresql] DateTime values '0001.01.01 00:00:00.00000' and '9999.12.31 23:59:59.99999' will be read as MinValue and MaxValue accordingly
  • [postgresql] DateTimeOffset values '0001.01.01 00:00:00.00000+00:00' and '9999.12.31 23:59:59.99999+00:00' will be read as MinValue and MaxValue accordingly
  • [postgresql] When legacy timestamp behavior is disabled, connection time zone is applied to DateTimeOffset values if possible, otherwise, to local one
  • [postgresql] TimeSpans based on values lower than -9223372036854775800L and higher 92233720368547758xxL will be read as MinValue and MaxValue accordingly
  • [postgresql] For PostgreSQL 13+ apply 'trim_scale' function to results of aggregation to improve compatibility with .NET decimal
  • [oracle] Updated client library to version 23.7.0
  • [sqlite] Fixed string.Lenght translation
  • [sqlite] Added support for string.PadLeft/PadRight operations
  • [sqlserver] Updated client library to version 5.2.2

7.1.5

10 Apr 13:20
Compare
Choose a tag to compare
  • [main] Addressed certain cases of overlaping server-side error by new one when temporary tables are used in query
  • [postgresql] Improved .Milliseconds translation for types which have this part
  • [postgresql] Improved TimeSpan.TotalMilliseconds translation
  • [sqlserver] Database schema objects which are "Microsoft shipped", e.g. created for replication mechanisms, are excluded from extraction

7.1.4

27 Jan 10:58
Compare
Choose a tag to compare
  • [main] Addressed IndexOutOfRangeException on translation of certain queries with aggregates
  • [main] Notification to BuildLog when a hierarchy changes KeyGeneratorKind value to None
  • [postgresql] Added explicit nulls setting for both column order directions to improve OrderBy/OrderByDescending performance

7.1.3

25 Dec 10:05
Compare
Choose a tag to compare
  • [main] Addressed race condition issue with TranslatorState.NonVisitableExpressions
  • [main] Improved working with nullable enum constants in queries
  • [main] Improved compatibility of .ToListAsync/.ToArrayAsync/.ToHashSetAsync/.AsAsyncEnumerable extension methods with EntitySet
  • [postgresql] Improved database structucture extraction
  • [postgresql] Addressed certain cases of decimal results of aggregate operations being unable to fit to .NET decimal

7.0.6

25 Dec 10:04
Compare
Choose a tag to compare
  • [main] Addressed issue of not visiting grouping expression correctly which appeared in previous version
  • [mysql] Updated client library package to version 8.0.31
  • [postgresql] Updated client library package to version 4.1.14

6.0.14

25 Dec 10:03
Compare
Choose a tag to compare
  • [main] Addressed issue of not visiting grouping expression correctly which appeared in previous version
  • [main] Addressed certain issues of incorrect query optimization when it contains multiple In() calls
  • [main] In addition to previous version, more cases of incorrect join type usage addressed
  • [firebird] Updated client library package to version 6.7.0
  • [mysql] Updated client library package to version 6.10.9
  • [oracle] Updated client library package to version 2.18.151
  • [postgresql] Updated Npgsql package to version 4.0.17 which patches some vulnerability issues
  • [sqlserver] Updated client library package to version 4.8.6
  • [sqlite] Updated client library package to version 1.0.119

7.1.2

22 Oct 14:02
Compare
Choose a tag to compare
  • [main] Addressed issue when cycles in Entity dependency graph were not detected
  • [main] Introduced DomainConfuguration.ExtensionConfigurations as unified configuration storage for extensions' configurations
  • [main] DomainConfiguration.Load() method now has overloads which gets abstractions from Microsoft.Extensions.Configuration API
  • [localization] LocalizationConfiguration.Load() method now has overloads which gets abstractions from Microsoft.Extensions.Configuration API
  • [localization] ConfigureLocalizationExtension() extensions for DomainConfiguration are added, check ReadMe/documentation for examples of usage
  • [reprocessing] ReprocessingConfiguration.Load() method now has overloads which gets abstractions from Microsoft.Extensions.Configuration API
  • [reprocessing] ConfigureReprocessingExtension() extensions for DomainConfiguration are added, check ReadMe/documentation for examples of usage
  • [security] SecurityConfiguration.Load() method now has overloads which gets abstractions from Microsoft.Extensions.Configuration API
  • [security] ConfigureSecurityExtension() extensions for DomainConfiguration are added, check ReadMe/documentation for examples of usage

7.0.5

03 Jun 11:33
Compare
Choose a tag to compare
  • [main] Some constructors of SqlPersistTask marked Obsolete, new constructors provided
  • [main] Some constructors of CalculateProvider marked Obsolete, new constructors provided
  • [main] Some constructors of AggregateProvider marked Obsolete, new constructors provided
  • [main] Updated BitFaster.Caching package
  • [main] Certain optimizations connected to query translation made

6.0.13

06 Apr 08:24
Compare
Choose a tag to compare
  • [main] Fixed certain cases of bad translation of casts via 'as' operator in LINQ queries
  • [main] Addressed certain issues of translation connected with comparison with local entity instance within LINQ queries
  • [main] Fixed rare issues of incorrect translation of filtered index expressions including conditional expressions
  • [main] Join/LeftJoin is denied to have the same expression instance for both inner/outer selector
  • [main] Addressed issue when wrong type of join was chosen when .First/FirstOrDefalult() method was used as subquery
  • [main] Added dedicated exception when RenameFieldHint.TargetType exists in current model but absent in storage model
  • [main] Xtensive.Sql.Model.NodeCollection.Add() throws understandable exception in case of duplicate name of item
  • [postgresql] Fixed issue of incorrect translation of conditional expressions including comparison with nullable fields

7.2.0 Beta 1

29 Dec 06:41
Compare
Choose a tag to compare
7.2.0 Beta 1 Pre-release
Pre-release
  • [main] NET5 is removed from target frameworks, NET7 and NET8 are added instead
  • [main] Some exceptions' serialization members were marked obsolete in NET8 library
  • [main] Unused Xtensive.Collections.PriorityQueue is removed
  • [main] Xtensive.Orm.Rse.Providers.Provider.Sources has changed return type to IReadOnlyList, as well as ctor parameter
  • [main] SqlInsert.Values became obsolete and no longer in use. Use ValueRows collection to add value rows
  • [main] DomainConfiguration.MaxNumberOfConditions is introduced
  • [main] SqlDml.Truncate() is introduced.
  • [main] WellKnown.MaxNumberOfConditions became obsolete, use new DomainConfiguration.MaxNumberOfConditions if needed
  • [main] TypeHelper.GetSingleConstructor() and .GetSingleConstructorOrDefault() are marked obsolete
  • [main] Session.DisableSaveChages() methods return null value in more cases. See methods' summaries
  • [main] DirectSessionAccessor.OpenSystemLogicOnlyRegion() returns disposable struct instead of IDisposable
  • [main] OperationRegistry's Disable/EnableSystemOperationRegistration methods return disposable struct instead of IDisposable
  • [main] Temporary tables cleanup now uses TRUNCATE instead of DELETE when possible
  • [main] Temporary tables population is increased with multi-row inserts - 256 and 16 items per INSERT
  • [main] PersistParameterBinding has new field RowIndex, use it for multi-row inserts if needed
  • [main] TemporaryTableDescriptor changed interface to IMultiRecordPersistDescriptor, fully compatible with IPersistDescriptor
  • [main] SqlNode.Clone() method now returns SqlNode to take advantage of C# covariant returns and reduce casts overhead
  • [main] Xtensive.Orm.Rse.Providers.ProviderVisitor is now generic with type parameter of method results
  • [main] Improved exception handling if some appered during asynchronous Session opening
  • [main] Fixed some ColumnInfoCollection and NodeCollection leaks
  • [main] Overall performance and memory officiency improvements
  • [main] Obsolete LockableExtensions.EnsureNotLocked is removed
  • [main] Obsolete DomainConfiguration.DefaultVersioningPolicy is removed
  • [main] Obsolete TypeInfo methods (GetImplementors(), GetInterfaces(), GetDescendants(), GetAncestors() and GetRoot()) are removed
  • [main] Obsolete TypeInfoCollection FindXXX methods are removed
  • [main] Obsolete PersistRequest constructor removed
  • [main] Obsolete PersistRequestBuilder.CreatePersistRequest() method is removed.
  • [main] Obsolete StorageDriver.Compile(ISqlCompileUnit, NodeConfigruation) method is removed
  • [main] Obsolete MethodHelper.GetMethod() and .GetConstructor() methods are removed
  • [main] Obsolete TypeHelper.GetConstructor() and .GetInterfaces() are removed
  • [main] Obsolete SqlCompilerConfiguration.SchemaMapping and .DatabaseMapping properties and constructor are removed
  • [main] Obsolete SqlNodeActualizer class is removed
  • [main] Obsolete SqlCompilerContext.SqlNodeActualizer property is removed
  • [main] Obsolete XtensiveSql.Dml.Extensions.IsNullReference() extension method is removed
  • [firebird] NET5 is removed from target frameworks, NET7 and NET8 are added instead
  • [mysql] NET5 is removed from target frameworks, NET7 and NET8 are added instead
  • [oracle] QueryInfo.MaxQueryParameterCount actualized, it is 65535 now
  • [oracle] NET5 is removed from target frameworks, NET7 and NET8 are added instead
  • [postgresql] NET5 is removed from target frameworks, NET7 and NET8 are added instead
  • [postgresql] QueryInfo.MaxQueryParameterCount actualized, it is 65535 now
  • [sqlserver] NET5 is removed from target frameworks, NET7 and NET8 are added instead
  • [sqlite] NET5 is removed from target frameworks, NET7 and NET8 are added instead