diff --git a/Orm/Xtensive.Orm/Orm/Domain.cs b/Orm/Xtensive.Orm/Orm/Domain.cs index 93d1845ee..f365b1f1e 100644 --- a/Orm/Xtensive.Orm/Orm/Domain.cs +++ b/Orm/Xtensive.Orm/Orm/Domain.cs @@ -315,18 +315,8 @@ public Task OpenSessionAsync(SessionType type, CancellationToken cancel public Task OpenSessionAsync(SessionConfiguration configuration, CancellationToken cancellationToken = default) { ArgumentNullException.ThrowIfNull(configuration); - - SessionScope sessionScope = null; - try { - if (configuration.Supports(SessionOptions.AutoActivation)) { - sessionScope = new SessionScope(); - } - return OpenSessionInternalAsync(configuration, null, sessionScope, cancellationToken); - } - catch { - sessionScope?.Dispose(); - throw; - } + using SessionScope sessionScope = configuration.Supports(SessionOptions.AutoActivation) ? new() : null; + return OpenSessionInternalAsync(configuration, null, sessionScope, cancellationToken); } internal SessionConfiguration GetSessionConfiguration(SessionType type) => diff --git a/Orm/Xtensive.Orm/Orm/StorageNode.cs b/Orm/Xtensive.Orm/Orm/StorageNode.cs index 3f15317bc..0aa169e79 100644 --- a/Orm/Xtensive.Orm/Orm/StorageNode.cs +++ b/Orm/Xtensive.Orm/Orm/StorageNode.cs @@ -82,18 +82,8 @@ public Task OpenSessionAsync(SessionType type, CancellationToken cancel public Task OpenSessionAsync(SessionConfiguration configuration, CancellationToken cancellationToken = default) { ArgumentNullException.ThrowIfNull(configuration); - - SessionScope sessionScope = null; - try { - if (configuration.Supports(SessionOptions.AutoActivation)) { - sessionScope = new SessionScope(); - } - return domain.OpenSessionInternalAsync(configuration, this, sessionScope, cancellationToken); - } - catch { - sessionScope?.Dispose(); - throw; - } + using SessionScope sessionScope = configuration.Supports(SessionOptions.AutoActivation) ? new() : null; + return domain.OpenSessionInternalAsync(configuration, this, sessionScope, cancellationToken); } public void ClearSequenceCaches()