Releases: DataObjects-NET/dataobjects-net
Releases · DataObjects-NET/dataobjects-net
6.0.12
- [main] Addressed DataTypeCollection.Add method issue of wrong adding storage-specifid types to the collection
- [main] Addressed rare issue of entities expire management when SessionOption.NonTransactionalReads is on
- [main] Fixed issue of skipping persist or query tasks during batching
- [main] Improved error message when the entity user operates with is removed, now it contains type of entity
- [main] Fixed query root (Query.All()) reuse issue which might lead to bad columns mapping and exception
- [sqlserver] Sql error messages for British English are correctly parsed
7.1.0
- [main] Added support for DefaultExpression within Linq queries
- [main] Support for TimeOnly ctors (time parts and ticks) in Linq, except for SQLite and MySQL providers
- [main] No Session.Activate() in ToTransactional extension, it affects EntitySet enumeration
7.1.0 RC
- [main] Add support for new .NET 6 DateOnly and TimeOnly types
- [main] Updated BitFaster.Caching package reference to v2.0.0
- [main] Fixed ColumnInfoCollection leakage on building indexes
- [sqlserver] Updated Microsoft.Data.SqlClient package references to v5.0.0 and v6.0.1
6.0.11
- [main] Added an option to remove cached queries of removing storage node along with the node, default behavior remains the same
- [postgresql] Dedicated exception when the extracting schema doesn't exist or it belongs to another user
- [weaver] Fixed constructor processing with try...catch, catch section now has correct leave
7.1.0 Beta 2
- [main] NET6 support
- [main] Obsolete CatalogHelper class has been removed
- [main] Obsolete ReacreateTableHint has been removed
- [main] Obsolete Session.SelectStorageNode() method is removed
- [main] Obsolete methods from ArrayExtensions, EnumerableExtensions and QueryableExtensions have been removed
- [main] Obsolete DeleteDataHint.PostCopy property has been removed
- [main] Obsolete QueryEndpoint's members have been removed
- [main] Obsolete Query's members have been removed
- [main] Obsolete members of DelayedScalarQuery have been removed
- [main] Obsolete FieldInfo.IsDynalicallyDefined property's been removed (FieldInfo.IsDynamicallyDefined is still there)
- [main] Changed translation of queries when DomainConfiguration.ShareStorageSchemaOverNodes set to true
- [main] StorageDriver.Compile(ISqlCompileUnit, NodeConfiguration) became obsolete
- [main] SqlNodeActualizer became obsolete
- [main] LockableExtensions.EnsureNotLocked() became obsolete, implementation moved to LockableBase directly
- [main] TypeInfoCollection.FindAncestor method became obsolete, use new TypeInfo.Ancestor property
- [main] TypeInfoCollection.FindDescendants methods became obsolete, use new TypeInfo.DirectDescendants/.AllDescendants properties
- [main] TypeInfoCollection.FindInterfaces methods became obsolete, use new TypeInfo.DirectInterfaces/.AllInterfaces properties
- [main] TypeInfoCollection.FindImplementors methods became obsolete, use new TypeInfo.DirectImplementors/.AllImplementors properties
- [main] TypeInfoCollection.FindRoot method became obsolete, use introduced TypeInfo.Root property
- [main] TypeInfo.GetImplementors(bool) became obsolete, use new TypeInfo.DirectImplementors/.AllImplementors properties
- [main] TypeInfo.GetInterfaces(bool) became obsolete, use new TypeInfo.DirectInterfaces/.AllInterfaces properties
- [main] TypeInfo.GetDescendants(bool) became obsolete, use new TypeInfo.DirectDescendants/.AllDescendants properties
- [main] TypeInfo.GetAncestors() became obsolete, use new TypeInfo.Ancestors property
- [main] TypeInfo.GetRoot() became obsolete, use introduced TypeInfo.Root property
- [main] IPropertyValidator.IsImmediate is read-only now
- [main] PropertyValidator.IsImmediate property has no setter, only init
- [main] PropertyValidator.ValidateOnlyIfModified property has no setter, only init
- [main] PropertyValidator.SkipOnTransactionCommit property has no setter, only init
- [main] RecordSetHeader.OrderTupleDescriptor became nullable to compensate TupleDescriptor's transition to read-only structure
- [main] IndexInfo.FilterByTypes changed result type to IReadOnlyList
- [main] IndexInfo.SelectColumns changed result type to IReadOnlyList
- [main] IndexInfo.ValueColumnsMap changed result type to IReadOnlyList<Pair<int, List>>
- [main] SqlCompilerConfiguration's DatabaseMapping and SchemaMapping moved to SqlPostCompilerConfiguration
- [main] Some EventArgs inheritors that were sealed classes transformed to read-only structures
- [main] DbCommandEventArgs became read-only structure
- [main] LogEventInfo became read-only structure
- [main] ILockable.Lock() now has default implementation that refers to ILockable.Lock(true)
- [main] TupleDescriptor became read-only structure
- [main] InterfaceMapping became read-only structure
- [main] ColumnIndexMap became read-only structure and properties changed retun type to IReadOnlyList
- [main] TopologicalSorter.Sort() methods return IEnumerable, use .SortToList() if results are needed as collection
- [main] TypeHelper.OrderByInheritance() returns IEnumerable to avoid copying
- [main] TypeHelper.GetInterfaces() became obsolete, GetInterfacesUnordered() and GetInterfacesOrderedByInheritance() introduced
- [main] TypeDef.Validators and FieldDef.Validators properties return List
- [main] SqlCustomFunctionCall and SqlFunctionCall share one base type
- [main] SqlFunctionCall.Arguments property is IReadOnlyList now and parameters can't be changed after instance creation
- [main] Xtensive.Sql.Dml.Extensions.IsNullReference() extension method is marked obsolete, use 'is null' operator instead
- [main] DirectSessionAccessor.GetChangedEntities() result type changed to improve enumeration
- [main] EntityChangeRegistry.GetItems(PersistenceState) changed result type to improve enumeration
- [main] EntitySetChangeRegistry.GetItems() changed result type to improve enumeration
- [main] IgnoreRule now has only one public constructor - parameterless
- [main] IgnoreRule supports indexes
- [main] Queries use parameters instead of constant values for type indentifiers within columns list
- [main] Added DomainConfiguration.PreferTypeIdsAsQueryParameters to choose between contants and parameters for TypeIds
- [main] ShareStorageSchemaOverNodes option now includes shared query cache when TypeIds as paremters are prefered
- [main] Introduced TypeInfo.Ancestor property
- [main] Introduced TypeInfo.DirectDescendants and.AllDescendants properties
- [main] Introduced TypeInfo.DirectInterfaces and.AllInterfaces properties
- [main] Introduced TypeInfo.DirectImplementors .AllImplementors properties
- [main] BitFaster.Caching package reference is updated to 1.0.7
- [main] No error caused by ambiguity due to new IQueryable extension methods of .Net 6
- [main] Improved internal logging speed
- [main] General performance and memory efficiency improvements
- [reprocessing] DomainBuildErrorEventArgs (not sealed) became read-only structure
- [reprocessing] ExecuteErrorEventArgs (not sealed) became read-only structure
- [tracking] TrackingCompletedEventArgs (sealed) became read-only structure
- [tracking] ITrackingItem ChangedValues property changed return type to IReadOnlyList
- [tracking] ChangedValue became read-only structure
- [Web] Removed Obsolete SessionManager and StartupConfigurationExtension
7.1.0 Beta 1
- [main] ThreadSafeCache, ThreadSafeDictionary, ThreadSafeList collections are removed
- [main] INamedValueCollection and its the only implementer NamedValueCollection are removed
- [main] ICollectionChangeNotifier, CollectionChangeNotifierEventArgs are removed
- [main] ArrayUtils and EnumerableUtils are removed
- [main] ISet interface is removed and all usages are replaced with System.Collections.Generic.ISet
- [main] Set, SetSlim, ReadOnlySet collections and abstract SetBase class are removed
- [main] ReadOnlyList, ReadOnlyCollection, ReadOnlyDictionary<TKey, TValue> collections are removed
- [main] ThreadSafeCached type is removed
- [main] Triplet and Triplet<TFirst,TSecond,TThird> are removed
- [main] TypeClassifier, LazyDictionary and FlagRegistry collections are removed
- [main] DifferentialDictionary and DifferentialDictionaryDifference types are removed
- [main] CollectionBase is removed
- [main] StringExtensions.Join() methods are removed
- [main] CollectionExtensions.ReverseList() method is removed
- [main] SqlTranslator/SqlCompiler APIs were significantly changed in order to improve memory usage and perfromance
- [main] Introduced IQueryable.Tag() extensions allowing to add tags to result SQL statement
- [main] Introduced Session.Tag() method for being able to tag queries within returned TagScope
- [main] Domain.TagsEnabled is introduced as easier alternative to DomainConfiguration.TagLocation!=TagLocation.Nowhere check
- [main] NativeTypeClassifier collection now inherits ClassifiedCollection directly
- [main] FlagCollection.Keys no returns .Net IReadOnlyList
- [main] CollectionBaseSlim no longer implements IList and ICollection but implements ICollection and IReadOnlyList
- [main] AggregateException.Exceptions property changed its return type to IReadOnlyList
- [main] AggregateException constuctors get array of exceptions instead of IEnumerable
- [main] CopyDataHint.CopiedColumns property changed its return type to IReadOnlyList<Pair>
- [main] DateHint.Identitites property changed return type to IReadOnlyList
- [main] UpdateDataHint.UpdateParameter property changed return type to IReadOnlyList<Pair<string, object>>
- [main] IUpgrader methods now return IReadOnlyList
- [main] PropertyAccessorDictionary has changed API due to change of the base type and interfaces
- [main] FullTextIndexDefCollection changed its base type to CollectionBaseSlim
- [main] HierarchyDefCollection base type changed to CollectionBaseSlim
- [main] HierarchyDefCollection and TypeDefCollection changed events set due to change of base type
- [main] SessionConfiguration collection API changed due to changes in base type CollectionBaseSlim
- [main] IGenerationTerm.Terms property changed return type to IReadOnlyList
- [main] IProximityTerm.Terms property changed its return type to IReadOnlyList
- [main] IOperation properties (PrecedingOperations, FollowingOperations, UndoOperations, IdentifiedEntities) changed return type
- [main] HierarchyInfo.Types property changed return type to IReadOnlyList
- [main] IndexInfo.Columns property return type changed to IReadOnlyList
- [main] KeyInfo's Fields and Columns properties changed to ReadOnlyList and IReadOnlyList respectively
- [main] TypeIndexInfoCollection.RealPrimaryIndexes property return type changed to IReadOnlyList
- [main] TypeIndexInfoCollection.GetIndexesContainingAllData() method changed its return type to IReadOnlyList
- [main] TypeInfo members that returned IList changed return type to IReadOnlyList
- [main] PersistRequestBuilderContext.AffectedIndexes changed return type to IReadOnlyList
- [main] QueryRowFilterParameterBinding.RowTypeMapping changed return type to IReadOnlyList
- [main] ProviderInfo.SupportedTypes changed return type to IReadOnlySet
- [main] SessionHandler.Prefetch/PrefetchAsync changed type of one of incoming parameters from IList to IReadOnlyList
- [main] ContainsTableProvider.TargetColumns changed return type to IReadOnlyList
- [main] ColumnCollection is no longer inherited from ReadOnlyList but implements IReadOnlyList
- [main] ColumnGroupCollection is no longer inherited from ReadOnlyCollection but implements IReadOnlyList
- [main] ChangeFieldTypeHint.AffectedColumns changed return type to IReadOnlyList
- [main] RemoveFieldHint.AffectedColumns changed return type to IReadOnlyList
- [main] RemoveTypeHint.AffectedTables changed return type to IReadOnlyList
- [main] SchemaComparisonResult.UnsafeActions changed return type to IReadOnlyList
- [main] UpgradeContext.Modules changed return type to IReadOnlyList
- [main] UpgradeContext.OrderedUpgradeHandlers changed return type to IReadOnlyList
- [main] UpgradeContext.UpgradeHandlers changed return type to IReadOnlyDictionary<Assembly, IUpgradeHandler>
- [main] KeyMapping.Map property changed type to .Net IReadOnlyDictionary<Key, Key>
- [main] InterfaceMapping's properties of ReadOnlyList type changed the type to .Net IReadOnlyList
- [main] Node's IncomingConnections and OutgoingConnections properties changed types to IReadOnlyList<NodeConnection<TNodeItem, TConnectionItem>>
- [main] CompositePreCompiler.Items became readonly field and changed its type to IReadOnlyList
- [main] SqlCompilerConfiguration's SchemaMapping and DatabaseMapping properties changed return types to IReadOnlyDictionary<string, string>
- [main] TypeMappingRegistry.Mappings and ReverseMappings properties changed return types to IReadOnlyDictionary<TKey, TValue>
- main] Xtensive.Orm.Services.QueryTranslationResult became read-only structure
- [main] Query and ParameterBindings properties of Xtensive.Orm.Services.QueryTranslationResult changed their types and became read-only
- [main] SqlTranslator.BuildBatch() method changed its parameter from string[] to IReadOnlyList
- [main] TypeReference, QueryRequest QueryParameterBinding types became read-only structures
- [main] TypeInfoRef, ColumnInfoRef, ColumnGroup and ComparisonRule types became read-only structures
- [main] RecordSetHeader constructors changed IEnumerable paremters to IReadOnlyList
- [main] ColumnGroupCollection no longer takes IEnumerable as parameter of constructor
- [main] ColumnCollection no longer takes IEnumerable as parameter of constructor, only constructor with IReadOnlyList is available now
- [main] Overall perfromance improved
- [main] Fixed issue when Execute/CreateDelayedQuery APIs query cache caused long-living objects
- [firebird] Added support for Firebird 4
- [sqlserver] Microsoft.Data.SqlClient is updated to verson 4.0.0
- [mysql] Added support for MySQL 5.7 and 8.0
- [mysql] Updated version of Google.Protobuf package
6.0.10
- [main] Fixed certain cases of NRE happened on Domain build due to views in extracted schema
- [main] Fixed NotSupportedException appeared on x86 architecture when DateTimeOffset is used in entites
7.0.3
- [main] NodeCollection supports different equality comparers for internal name index
- [sqlserver] Fixed TimeSpan.Ticks extraction problem
- [oracle] Fixed scheme extraction for case-sensitive schema names
7.0.2
- [main] Addressed certain issues of enum equality expressions translation that appeared in v7.0.0
- [sqlserver] Replaced usage of DATEDIFF with DATEDIFF_BIG for v13 and newer
- [sqlserver] Improved certain operations based on DateTime/DateTimeOffset subtraction for v13 and newer
6.0.9
- [main] Improved enum comparison in queries so result SQL queries won't break index seek if any exists
- [main] Improved enum comparison in partial indexes
- [main] Addressed certain issues with with async queries containing .Store() and .In() via temporary table
- [sqlserver] Fixed Full-text indexes extraction for Azure SQL provider
- [sqlserver] Correct extraction of custom sequences based on types other than BIGINT