Dataobjects Net Versions Save

7.0.5

1 week ago
  • [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

2 months ago
  • [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<T>.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

5 months ago
  • [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<T>, 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<AssociationInfo> 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

7.1.1

7 months ago
  • [main] Improved memory efficiency of cached queries.
  • [main] One of PersistRequest's constructors marked obsolete since it is no longer in use

7.0.4

7 months ago
  • [main] Updated BitFaster.Caching package to version 1.0.7

6.0.12

7 months ago
  • [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<T>()) reuse issue which might lead to bad columns mapping and exception
  • [sqlserver] Sql error messages for British English are correctly parsed

7.1.0

1 year ago
  • [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<T> enumeration

7.1.0-RC

1 year ago
  • [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

1 year ago
  • [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

1 year ago
  • [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<T> 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<TypeInfo>
  • [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<T>, use .SortToList() if results are needed as collection
  • [main] TypeHelper.OrderByInheritance() returns IEnumerable<T> to avoid copying
  • [main] TypeHelper.GetInterfaces() became obsolete, GetInterfacesUnordered() and GetInterfacesOrderedByInheritance() introduced
  • [main] TypeDef.Validators and FieldDef.Validators properties return List<T>
  • [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<ChangedValue>
  • [tracking] ChangedValue became read-only structure
  • [Web] Removed Obsolete SessionManager and StartupConfigurationExtension