Skip to content

Commit a5b6abf

Browse files
committed
Merge branch 'master' into net-core-31
# Conflicts: # Orm/Xtensive.Orm/Orm/Linq/MemberCompilation/MemberCompilerProvider.cs # Orm/Xtensive.Orm/Orm/Linq/Translator.Expressions.cs
2 parents e8a06dc + 7b36c27 commit a5b6abf

19 files changed

Lines changed: 373 additions & 345 deletions

File tree

Orm/Xtensive.Orm.Firebird/Sql.Drivers.Firebird/Connection.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ public override void BeginTransaction()
4444
/// <inheritdoc/>
4545
public override void BeginTransaction(IsolationLevel isolationLevel)
4646
{
47-
EnsureTrasactionIsNotActive();
47+
EnsureIsNotDisposed();
48+
EnsureTransactionIsNotActive();
49+
4850
var transactionOptions = new FbTransactionOptions {WaitTimeout = TimeSpan.FromSeconds(10)};
4951
switch (SqlHelper.ReduceIsolationLevel(isolationLevel)) {
5052
case IsolationLevel.ReadCommitted:
@@ -68,6 +70,12 @@ protected override void ClearActiveTransaction()
6870
activeTransaction = null;
6971
}
7072

73+
/// <inheritdoc/>
74+
protected override void ClearUnderlyingConnection()
75+
{
76+
underlyingConnection = null;
77+
}
78+
7179
/// <inheritdoc/>
7280
public override void MakeSavepoint(string name)
7381
{

Orm/Xtensive.Orm.MySql/Sql.Drivers.MySql/Connection.cs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace Xtensive.Sql.Drivers.MySql
1313
{
1414
internal class Connection : SqlConnection
1515
{
16-
private readonly MySqlConnection underlyingConnection;
16+
private MySqlConnection underlyingConnection;
1717
private MySqlTransaction activeTransaction;
1818

1919
/// <inheritdoc/>
@@ -39,22 +39,28 @@ public override DbParameter CreateParameter()
3939
[SecuritySafeCritical]
4040
public override void BeginTransaction()
4141
{
42-
EnsureTrasactionIsNotActive();
42+
EnsureIsNotDisposed();
43+
EnsureTransactionIsNotActive();
44+
4345
activeTransaction = underlyingConnection.BeginTransaction();
4446
}
4547

4648
/// <inheritdoc/>
4749
[SecuritySafeCritical]
4850
public override void BeginTransaction(IsolationLevel isolationLevel)
4951
{
50-
EnsureTrasactionIsNotActive();
52+
EnsureIsNotDisposed();
53+
EnsureTransactionIsNotActive();
54+
5155
activeTransaction = underlyingConnection.BeginTransaction(SqlHelper.ReduceIsolationLevel(isolationLevel));
5256
}
5357

5458
/// <inheritdoc/>
5559
public override void MakeSavepoint(string name)
5660
{
61+
EnsureIsNotDisposed();
5762
EnsureTransactionIsActive();
63+
5864
string commandText = string.Format("SAVEPOINT {0}", name);
5965
using (DbCommand command = CreateCommand(commandText))
6066
command.ExecuteNonQuery();
@@ -63,7 +69,9 @@ public override void MakeSavepoint(string name)
6369
/// <inheritdoc/>
6470
public override void RollbackToSavepoint(string name)
6571
{
72+
EnsureIsNotDisposed();
6673
EnsureTransactionIsActive();
74+
6775
string commandText = string.Format("ROLLBACK TO SAVEPOINT {0}; RELEASE SAVEPOINT {0};", name);
6876
using (DbCommand command = CreateCommand(commandText))
6977
command.ExecuteNonQuery();
@@ -72,7 +80,9 @@ public override void RollbackToSavepoint(string name)
7280
/// <inheritdoc/>
7381
public override void ReleaseSavepoint(string name)
7482
{
83+
EnsureIsNotDisposed();
7584
EnsureTransactionIsActive();
85+
7686
string commandText = string.Format("RELEASE SAVEPOINT {0}", name);
7787
using (DbCommand command = CreateCommand(commandText))
7888
command.ExecuteNonQuery();
@@ -84,6 +94,12 @@ protected override void ClearActiveTransaction()
8494
activeTransaction = null;
8595
}
8696

97+
/// <inheritdoc/>
98+
protected override void ClearUnderlyingConnection()
99+
{
100+
underlyingConnection = null;
101+
}
102+
87103
// Constructors
88104

89105
[SecuritySafeCritical]

Orm/Xtensive.Orm.Oracle/Sql.Drivers.Oracle/Connection.cs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,46 +41,53 @@ public override DbParameter CreateCursorParameter()
4141
/// <inheritdoc/>
4242
public override IBinaryLargeObject CreateBinaryLargeObject()
4343
{
44+
EnsureIsNotDisposed();
4445
return new BinaryLargeObject(underlyingConnection);
4546
}
4647

4748
/// <inheritdoc/>
4849
public override ICharacterLargeObject CreateCharacterLargeObject()
4950
{
51+
EnsureIsNotDisposed();
5052
return new CharacterLargeObject(underlyingConnection);
5153
}
5254

5355
/// <inheritdoc/>
5456
public override void BeginTransaction()
5557
{
56-
EnsureTrasactionIsNotActive();
58+
EnsureIsNotDisposed();
59+
EnsureTransactionIsNotActive();
5760
activeTransaction = underlyingConnection.BeginTransaction();
5861
}
5962

6063
/// <inheritdoc/>
6164
public override void BeginTransaction(IsolationLevel isolationLevel)
6265
{
63-
EnsureTrasactionIsNotActive();
66+
EnsureIsNotDisposed();
67+
EnsureTransactionIsNotActive();
6468
activeTransaction = underlyingConnection.BeginTransaction(SqlHelper.ReduceIsolationLevel(isolationLevel));
6569
}
6670

6771
/// <inheritdoc/>
6872
public override void MakeSavepoint(string name)
6973
{
74+
EnsureIsNotDisposed();
7075
EnsureTransactionIsActive();
7176
activeTransaction.Save(name);
7277
}
7378

7479
/// <inheritdoc/>
7580
public override void RollbackToSavepoint(string name)
7681
{
82+
EnsureIsNotDisposed();
7783
EnsureTransactionIsActive();
78-
activeTransaction.Rollback(name);
84+
activeTransaction.Rollback(name);
7985
}
8086

8187
/// <inheritdoc/>
8288
public override void ReleaseSavepoint(string name)
8389
{
90+
EnsureIsNotDisposed();
8491
EnsureTransactionIsActive();
8592
// nothing
8693
}
@@ -91,13 +98,18 @@ protected override void ClearActiveTransaction()
9198
activeTransaction = null;
9299
}
93100

101+
/// <inheritdoc/>
102+
protected override void ClearUnderlyingConnection()
103+
{
104+
underlyingConnection = null;
105+
}
106+
94107
/// <inheritdoc/>
95108
protected override DbCommand CreateNativeCommand()
96109
{
97110
return new OracleCommand {Connection = underlyingConnection, BindByName = true};
98111
}
99112

100-
101113
// Constructors
102114

103115
public Connection(SqlDriver driver)

Orm/Xtensive.Orm.PostgreSql/Sql.Drivers.PostgreSql/Connection.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,24 @@ public override DbParameter CreateParameter()
3434
[SecuritySafeCritical]
3535
public override void BeginTransaction()
3636
{
37-
EnsureTrasactionIsNotActive();
37+
EnsureIsNotDisposed();
38+
EnsureTransactionIsNotActive();
3839
activeTransaction = underlyingConnection.BeginTransaction();
3940
}
4041

4142
/// <inheritdoc/>
4243
[SecuritySafeCritical]
4344
public override void BeginTransaction(IsolationLevel isolationLevel)
4445
{
45-
EnsureTrasactionIsNotActive();
46+
EnsureIsNotDisposed();
47+
EnsureTransactionIsNotActive();
4648
activeTransaction = underlyingConnection.BeginTransaction(SqlHelper.ReduceIsolationLevel(isolationLevel));
4749
}
4850

4951
/// <inheritdoc/>
5052
public override void MakeSavepoint(string name)
5153
{
54+
EnsureIsNotDisposed();
5255
EnsureTransactionIsActive();
5356
var commandText = string.Format("SAVEPOINT {0}", name);
5457
using (var command = CreateCommand(commandText))
@@ -58,6 +61,7 @@ public override void MakeSavepoint(string name)
5861
/// <inheritdoc/>
5962
public override void RollbackToSavepoint(string name)
6063
{
64+
EnsureIsNotDisposed();
6165
EnsureTransactionIsActive();
6266
var commandText = string.Format("ROLLBACK TO SAVEPOINT {0}; RELEASE SAVEPOINT {0};", name);
6367
using (var command = CreateCommand(commandText))
@@ -67,6 +71,7 @@ public override void RollbackToSavepoint(string name)
6771
/// <inheritdoc/>
6872
public override void ReleaseSavepoint(string name)
6973
{
74+
EnsureIsNotDisposed();
7075
EnsureTransactionIsActive();
7176
var commandText = string.Format("RELEASE SAVEPOINT {0}", name);
7277
using (var command = CreateCommand(commandText))
@@ -79,6 +84,11 @@ protected override void ClearActiveTransaction()
7984
activeTransaction = null;
8085
}
8186

87+
/// <inheritdoc/>
88+
protected override void ClearUnderlyingConnection()
89+
{
90+
underlyingConnection = null;
91+
}
8292

8393
// Constructors
8494

Orm/Xtensive.Orm.SqlServer/Sql.Drivers.SqlServer/Connection.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@
88
using System.Data;
99
using System.Data.Common;
1010
using System.Data.SqlClient;
11-
using System.Runtime.CompilerServices;
1211
using System.Threading;
1312
using System.Threading.Tasks;
14-
using Xtensive.Orm;
1513
using SqlServerConnection = System.Data.SqlClient.SqlConnection;
1614

1715
namespace Xtensive.Sql.Drivers.SqlServer
@@ -84,38 +82,48 @@ public override Task OpenAndInitializeAsync(string initializationScript, Cancell
8482
/// <inheritdoc/>
8583
public override void BeginTransaction()
8684
{
87-
EnsureTrasactionIsNotActive();
85+
EnsureIsNotDisposed();
86+
EnsureTransactionIsNotActive();
8887
activeTransaction = underlyingConnection.BeginTransaction();
8988
}
9089

9190
/// <inheritdoc/>
9291
public override void BeginTransaction(IsolationLevel isolationLevel)
9392
{
94-
EnsureTrasactionIsNotActive();
93+
EnsureIsNotDisposed();
94+
EnsureTransactionIsNotActive();
9595
activeTransaction = underlyingConnection.BeginTransaction(isolationLevel);
9696
}
97-
97+
9898
/// <inheritdoc/>
9999
public override void MakeSavepoint(string name)
100100
{
101+
EnsureIsNotDisposed();
101102
EnsureTransactionIsActive();
102103
activeTransaction.Save(name);
103104
}
104105

105106
/// <inheritdoc/>
106107
public override void RollbackToSavepoint(string name)
107108
{
109+
EnsureIsNotDisposed();
108110
EnsureTransactionIsActive();
109111
activeTransaction.Rollback(name);
110112
}
111113

112114
/// <inheritdoc/>
113115
public override void ReleaseSavepoint(string name)
114116
{
117+
EnsureIsNotDisposed();
115118
EnsureTransactionIsActive();
116119
// nothing
117120
}
118121

122+
protected override void ClearUnderlyingConnection()
123+
{
124+
underlyingConnection = null;
125+
}
126+
119127
/// <inheritdoc/>
120128
protected override void ClearActiveTransaction()
121129
{

Orm/Xtensive.Orm.Sqlite/Sql.Drivers.Sqlite/Connection.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@
44
// Created by: Malisa Ncube
55
// Created: 2011.04.29
66

7-
using System;
87
using System.Data;
98
using System.Data.Common;
109
using System.Data.SQLite;
1110
using System.Security;
12-
using Xtensive.Orm;
1311

1412
namespace Xtensive.Sql.Drivers.Sqlite
1513
{
@@ -35,21 +33,24 @@ public override DbParameter CreateParameter()
3533
[SecuritySafeCritical]
3634
public override void BeginTransaction()
3735
{
38-
EnsureTrasactionIsNotActive();
36+
EnsureIsNotDisposed();
37+
EnsureTransactionIsNotActive();
3938
activeTransaction = underlyingConnection.BeginTransaction();
4039
}
4140

4241
/// <inheritdoc/>
4342
[SecuritySafeCritical]
4443
public override void BeginTransaction(IsolationLevel isolationLevel)
4544
{
46-
EnsureTrasactionIsNotActive();
45+
EnsureIsNotDisposed();
46+
EnsureTransactionIsNotActive();
4747
activeTransaction = underlyingConnection.BeginTransaction(SqlHelper.ReduceIsolationLevel(isolationLevel));
4848
}
4949

5050
/// <inheritdoc/>
5151
public override void MakeSavepoint(string name)
5252
{
53+
EnsureIsNotDisposed();
5354
EnsureTransactionIsActive();
5455
var commandText = string.Format("SAVEPOINT {0}", name);
5556
using (var command = CreateCommand(commandText))
@@ -59,6 +60,7 @@ public override void MakeSavepoint(string name)
5960
/// <inheritdoc/>
6061
public override void RollbackToSavepoint(string name)
6162
{
63+
EnsureIsNotDisposed();
6264
EnsureTransactionIsActive();
6365
var commandText = string.Format("ROLLBACK TO SAVEPOINT {0}; RELEASE SAVEPOINT {0};", name);
6466
using (var command = CreateCommand(commandText))
@@ -68,6 +70,7 @@ public override void RollbackToSavepoint(string name)
6870
/// <inheritdoc/>
6971
public override void ReleaseSavepoint(string name)
7072
{
73+
EnsureIsNotDisposed();
7174
EnsureTransactionIsActive();
7275
var commandText = string.Format("RELEASE SAVEPOINT {0}", name);
7376
using (var command = CreateCommand(commandText))
@@ -80,6 +83,11 @@ protected override void ClearActiveTransaction()
8083
activeTransaction = null;
8184
}
8285

86+
/// <inheritdoc/>
87+
protected override void ClearUnderlyingConnection()
88+
{
89+
underlyingConnection = null;
90+
}
8391

8492
// Constructors
8593

Orm/Xtensive.Orm/Orm/Linq/Materialization/ExpressionMaterializer.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// Copyright (C) 2003-2010 Xtensive LLC.
2-
// All rights reserved.
3-
// For conditions of distribution and use, see license.
1+
// Copyright (C) 2009-2020 Xtensive LLC.
2+
// This code is distributed under MIT license terms.
3+
// See the License.txt file in the project root for more information.
44
// Created by: Alexey Gamzov
55
// Created: 2009.05.21
66

@@ -446,7 +446,7 @@ private Expression MaterializeThroughOwner(Expression target, Expression tuple,
446446
var owner = field.Owner;
447447
var materializedOwner = MaterializeThroughOwner((Expression) owner, tuple, defaultIfEmpty);
448448
Expression fieldExpression;
449-
if (field.Field.IsDynalicallyDefined) {
449+
if (field.Field.IsDynamicallyDefined) {
450450
var attributes = materializedOwner.Type.GetCustomAttributes(typeof (DefaultMemberAttribute), true);
451451
var indexerPropertyName = ((DefaultMemberAttribute) attributes.Single()).MemberName;
452452
var methodInfo = materializedOwner.Type.GetProperty(indexerPropertyName).GetGetMethod();

0 commit comments

Comments
 (0)