Skip to content

Commit d174265

Browse files
authored
Merge branch 'master' into upstream/ColumnInfoCollection_leak
2 parents 16154bc + 0c61bdb commit d174265

File tree

168 files changed

+5694
-2620
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

168 files changed

+5694
-2620
lines changed

ChangeLog/7.1.0-Beta-2-dev.txt

Lines changed: 0 additions & 20 deletions
This file was deleted.

ChangeLog/7.1.0-Beta-2.txt

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
[main] NET6 support
2+
[main] Obsolete CatalogHelper class has been removed
3+
[main] Obsolete ReacreateTableHint has been removed
4+
[main] Obsolete Session.SelectStorageNode() method is removed
5+
[main] Obsolete methods from ArrayExtensions, EnumerableExtensions and QueryableExtensions have been removed
6+
[main] Obsolete DeleteDataHint.PostCopy property has been removed
7+
[main] Obsolete QueryEndpoint's members have been removed
8+
[main] Obsolete Query's members have been removed
9+
[main] Obsolete members of DelayedScalarQuery<T> have been removed
10+
[main] Obsolete FieldInfo.IsDynalicallyDefined property's been removed (FieldInfo.IsDynamicallyDefined is still there)
11+
[main] Changed translation of queries when DomainConfiguration.ShareStorageSchemaOverNodes set to true
12+
[main] StorageDriver.Compile(ISqlCompileUnit, NodeConfiguration) became obsolete
13+
[main] SqlNodeActualizer became obsolete
14+
[main] LockableExtensions.EnsureNotLocked() became obsolete, implementation moved to LockableBase directly
15+
[main] TypeInfoCollection.FindAncestor method became obsolete, use new TypeInfo.Ancestor property
16+
[main] TypeInfoCollection.FindDescendants methods became obsolete, use new TypeInfo.DirectDescendants/.AllDescendants properties
17+
[main] TypeInfoCollection.FindInterfaces methods became obsolete, use new TypeInfo.DirectInterfaces/.AllInterfaces properties
18+
[main] TypeInfoCollection.FindImplementors methods became obsolete, use new TypeInfo.DirectImplementors/.AllImplementors properties
19+
[main] TypeInfoCollection.FindRoot method became obsolete, use introduced TypeInfo.Root property
20+
[main] TypeInfo.GetImplementors(bool) became obsolete, use new TypeInfo.DirectImplementors/.AllImplementors properties
21+
[main] TypeInfo.GetInterfaces(bool) became obsolete, use new TypeInfo.DirectInterfaces/.AllInterfaces properties
22+
[main] TypeInfo.GetDescendants(bool) became obsolete, use new TypeInfo.DirectDescendants/.AllDescendants properties
23+
[main] TypeInfo.GetAncestors() became obsolete, use new TypeInfo.Ancestors property
24+
[main] TypeInfo.GetRoot() became obsolete, use introduced TypeInfo.Root property
25+
[main] IPropertyValidator.IsImmediate is read-only now
26+
[main] PropertyValidator.IsImmediate property has no setter, only init
27+
[main] PropertyValidator.ValidateOnlyIfModified property has no setter, only init
28+
[main] PropertyValidator.SkipOnTransactionCommit property has no setter, only init
29+
[main] RecordSetHeader.OrderTupleDescriptor became nullable to compensate TupleDescriptor's transition to read-only structure
30+
[main] IndexInfo.FilterByTypes changed result type to IReadOnlyList<TypeInfo>
31+
[main] IndexInfo.SelectColumns changed result type to IReadOnlyList<int>
32+
[main] IndexInfo.ValueColumnsMap changed result type to IReadOnlyList<Pair<int, List<int>>>
33+
[main] SqlCompilerConfiguration's DatabaseMapping and SchemaMapping moved to SqlPostCompilerConfiguration
34+
[main] Some EventArgs inheritors that were sealed classes transformed to read-only structures
35+
[main] DbCommandEventArgs became read-only structure
36+
[main] LogEventInfo became read-only structure
37+
[main] ILockable.Lock() now has default implementation that refers to ILockable.Lock(true)
38+
[main] TupleDescriptor became read-only structure
39+
[main] InterfaceMapping became read-only structure
40+
[main] ColumnIndexMap became read-only structure and properties changed retun type to IReadOnlyList<int>
41+
[main] TopologicalSorter.Sort() methods return IEnumerable<T>, use .SortToList() if results are needed as collection
42+
[main] TypeHelper.OrderByInheritance() returns IEnumerable<T> to avoid copying
43+
[main] TypeHelper.GetInterfaces() became obsolete, GetInterfacesUnordered() and GetInterfacesOrderedByInheritance() introduced
44+
[main] TypeDef.Validators and FieldDef.Validators properties return List<T>
45+
[main] SqlCustomFunctionCall and SqlFunctionCall share one base type
46+
[main] SqlFunctionCall.Arguments property is IReadOnlyList now and parameters can't be changed after instance creation
47+
[main] Xtensive.Sql.Dml.Extensions.IsNullReference() extension method is marked obsolete, use 'is null' operator instead
48+
[main] DirectSessionAccessor.GetChangedEntities() result type changed to improve enumeration
49+
[main] EntityChangeRegistry.GetItems(PersistenceState) changed result type to improve enumeration
50+
[main] EntitySetChangeRegistry.GetItems() changed result type to improve enumeration
51+
[main] IgnoreRule now has only one public constructor - parameterless
52+
[main] IgnoreRule supports indexes
53+
[main] Queries use parameters instead of constant values for type indentifiers within columns list
54+
[main] Added DomainConfiguration.PreferTypeIdsAsQueryParameters to choose between contants and parameters for TypeIds
55+
[main] ShareStorageSchemaOverNodes option now includes shared query cache when TypeIds as paremters are prefered
56+
[main] Introduced TypeInfo.Ancestor property
57+
[main] Introduced TypeInfo.DirectDescendants and.AllDescendants properties
58+
[main] Introduced TypeInfo.DirectInterfaces and.AllInterfaces properties
59+
[main] Introduced TypeInfo.DirectImplementors .AllImplementors properties
60+
[main] BitFaster.Caching package reference is updated to 1.0.7
61+
[main] No error caused by ambiguity due to new IQueryable extension methods of .Net 6
62+
[main] Improved internal logging speed
63+
[main] General performance and memory efficiency improvements
64+
[reprocessing] DomainBuildErrorEventArgs (not sealed) became read-only structure
65+
[reprocessing] ExecuteErrorEventArgs (not sealed) became read-only structure
66+
[tracking] TrackingCompletedEventArgs (sealed) became read-only structure
67+
[tracking] ITrackingItem ChangedValues property changed return type to IReadOnlyList<ChangedValue>
68+
[tracking] ChangedValue became read-only structure
69+
[Web] Removed Obsolete SessionManager and StartupConfigurationExtension

ChangeLog/7.1.0-RC-dev.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[main] Updated BitFaster.Caching package reference to v2.0.0
2+
[sqlserver] Updated Microsoft.Data.SqlClient package reference to v5.0.0

Directory.Build.props

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@
6363

6464
<PropertyGroup Condition = "$(Configuration.Contains('Debug')) == 'true'">
6565
<DefineConstants>$(DefineConstants);TRACE;DEBUG</DefineConstants>
66+
<DebugSymbols>true</DebugSymbols>
67+
<DebugType>portable</DebugType>
6668
</PropertyGroup>
6769

6870
<PropertyGroup Condition = "$(Configuration.Contains('Release')) == 'true'">

Extensions/TestCommon/TestCommon.csproj

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,16 @@
88
<AssemblyOriginatorKeyFile>$(ExtensionsKeyFile)</AssemblyOriginatorKeyFile>
99
</PropertyGroup>
1010
<Import Project="$(SolutionDir)MSBuild\DataObjects.Net.InternalBuild.targets" />
11+
<ItemGroup Condition="'$(TargetFramework)'=='net5.0'">
12+
<PackageReference Include="System.Configuration.ConfigurationManager" Version="5.0.0" />
13+
</ItemGroup>
14+
<ItemGroup Condition="'$(TargetFramework)'=='net6.0'">
15+
<PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.0" />
16+
</ItemGroup>
1117
<ItemGroup>
1218
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
1319
<PackageReference Include="NUnit" Version="3.13.2" />
1420
<PackageReference Include="NUnit3TestAdapter" Version="4.2.0" />
15-
<PackageReference Include="System.Configuration.ConfigurationManager" Version="5.0.0" />
1621
</ItemGroup>
1722
<ItemGroup>
1823
<ProjectReference Include="..\..\Orm\Xtensive.Orm.Tests.Framework\Xtensive.Orm.Tests.Framework.csproj" />

Extensions/Xtensive.Orm.Reprocessing/Xtensive.Orm.Reprocessing.csproj

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,12 @@
1212
<SignAssembly>true</SignAssembly>
1313
<AssemblyOriginatorKeyFile>$(ExtensionsKeyFile)</AssemblyOriginatorKeyFile>
1414
</PropertyGroup>
15-
<ItemGroup>
15+
<ItemGroup Condition="'$(TargetFramework)' == 'net5.0'">
1616
<PackageReference Include="System.Configuration.ConfigurationManager" Version="5.0.0" />
1717
</ItemGroup>
18+
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
19+
<PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.0" />
20+
</ItemGroup>
1821
<ItemGroup>
1922
<None Include="Readme.txt" />
2023
</ItemGroup>

Extensions/Xtensive.Orm.Security/Xtensive.Orm.Security.csproj

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@
1313
<AssemblyOriginatorKeyFile>$(ExtensionsKeyFile)</AssemblyOriginatorKeyFile>
1414
</PropertyGroup>
1515
<Import Project="$(SolutionDir)MSBuild\DataObjects.Net.InternalBuild.targets" />
16-
<ItemGroup>
16+
<ItemGroup Condition="'$(TargetFramework)'=='net5.0'">
1717
<PackageReference Include="System.Configuration.ConfigurationManager" Version="5.0.0" />
1818
</ItemGroup>
19+
<ItemGroup Condition="'$(TargetFramework)'=='net6.0'">
20+
<PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.0" />
21+
</ItemGroup>
1922
<ItemGroup>
2023
<ProjectReference Include="..\..\Orm\Xtensive.Orm\Xtensive.Orm.csproj" />
2124
</ItemGroup>

Extensions/Xtensive.Orm.Tracking.Tests/TrackingStackFrameTests.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class TrackingStackFrameTests : TrackingTestBase
1111
[Test]
1212
public void SafelyInsertTheSameItemTwiceTest()
1313
{
14-
var frame = new TrackingStackFrame();
14+
var frame = new TrackingStackFrame(false);
1515
var key = Key.Create(Domain, typeof(MyEntity), 1);
1616
var item = CreateTrackingItem(key, TrackingItemState.Created);
1717
frame.Register(item);
@@ -21,8 +21,8 @@ public void SafelyInsertTheSameItemTwiceTest()
2121
[Test]
2222
public void MergeTwoEmptyFramesTest()
2323
{
24-
var target = new TrackingStackFrame();
25-
var source = new TrackingStackFrame();
24+
var target = new TrackingStackFrame(false);
25+
var source = new TrackingStackFrame(false);
2626
target.MergeWith(source);
2727

2828
Assert.AreEqual(0, target.Count);
@@ -32,9 +32,9 @@ public void MergeTwoEmptyFramesTest()
3232
public void MergeEmptyFrameWithNonEmptyFrameTest()
3333
{
3434
var key = Key.Create(Domain, typeof(MyEntity), 1);
35-
var target = new TrackingStackFrame();
35+
var target = new TrackingStackFrame(false);
3636

37-
var source = new TrackingStackFrame();
37+
var source = new TrackingStackFrame(false);
3838
source.Register(CreateTrackingItem(key, TrackingItemState.Created));
3939

4040
target.MergeWith(source);
@@ -46,11 +46,11 @@ public void MergeEmptyFrameWithNonEmptyFrameTest()
4646
public void MergeNonEmptyFrameWithEmptyFrameTest()
4747
{
4848
var key = Key.Create(Domain, typeof(MyEntity), 1);
49-
var target = new TrackingStackFrame();
49+
var target = new TrackingStackFrame(false);
5050
target.Register(CreateTrackingItem(key, TrackingItemState.Created));
5151
var count = target.Count;
5252

53-
var source = new TrackingStackFrame();
53+
var source = new TrackingStackFrame(false);
5454

5555
target.MergeWith(source);
5656

@@ -61,11 +61,11 @@ public void MergeNonEmptyFrameWithEmptyFrameTest()
6161
public void MergeFramesWithTheSameItemsTest()
6262
{
6363
var key = Key.Create(Domain, typeof(MyEntity), 1);
64-
var target = new TrackingStackFrame();
64+
var target = new TrackingStackFrame(false);
6565
target.Register(CreateTrackingItem(key, TrackingItemState.Created));
6666
var count = target.Count;
6767

68-
var source = new TrackingStackFrame();
68+
var source = new TrackingStackFrame(false);
6969
source.Register(CreateTrackingItem(key, TrackingItemState.Changed));
7070

7171
target.MergeWith(source);
@@ -79,10 +79,10 @@ public void MergeFramesWithDifferentItemsTest()
7979
{
8080
var key1 = Key.Create(Domain, typeof(MyEntity), 1);
8181
var key2 = Key.Create(Domain, typeof(MyEntity), 2);
82-
var target = new TrackingStackFrame();
82+
var target = new TrackingStackFrame(false);
8383
target.Register(CreateTrackingItem(key1, TrackingItemState.Created));
8484

85-
var source = new TrackingStackFrame();
85+
var source = new TrackingStackFrame(false);
8686
source.Register(CreateTrackingItem(key2, TrackingItemState.Changed));
8787
var count = target.Count + source.Count;
8888

Extensions/Xtensive.Orm.Tracking/ChangedValue.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,30 @@
1-
using Xtensive.Orm.Model;
1+
// Copyright (C) 2012-2022 Xtensive LLC.
2+
// This code is distributed under MIT license terms.
3+
// See the License.txt file in the project root for more information.
4+
5+
using Xtensive.Orm.Model;
26

37
namespace Xtensive.Orm.Tracking
48
{
59
/// <summary>
610
/// Represents a pair of original and changed values for a persistent field
711
/// </summary>
8-
public sealed class ChangedValue
12+
public readonly struct ChangedValue
913
{
1014
/// <summary>
1115
/// Gets the field.
1216
/// </summary>
13-
public FieldInfo Field { get; private set; }
17+
public FieldInfo Field { get; }
1418

1519
/// <summary>
1620
/// Gets the original value.
1721
/// </summary>
18-
public object OriginalValue { get; private set; }
22+
public object OriginalValue { get; }
1923

2024
/// <summary>
2125
/// Gets the new value.
2226
/// </summary>
23-
public object NewValue { get; private set; }
27+
public object NewValue { get; }
2428

2529
/// <summary>
2630
/// Initializes a new instance of the <see cref="ChangedValue"/> class.

Extensions/Xtensive.Orm.Tracking/Interfaces/ITrackingItem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ public interface ITrackingItem
3232
/// <summary>
3333
/// Gets list of detected changes of field values.
3434
/// </summary>
35-
IList<ChangedValue> ChangedValues { get; }
35+
IReadOnlyList<ChangedValue> ChangedValues { get; }
3636
}
3737
}

0 commit comments

Comments
 (0)