From db0bf1f2718fda9836514e06d39ec0daf6484e6b Mon Sep 17 00:00:00 2001 From: Sergei Pavlov Date: Wed, 1 Oct 2025 17:30:42 -0700 Subject: [PATCH] Refactoring: simplify `OpenSessionAsync()` code --- Orm/Xtensive.Orm/Orm/Domain.cs | 14 ++------------ Orm/Xtensive.Orm/Orm/StorageNode.cs | 14 ++------------ 2 files changed, 4 insertions(+), 24 deletions(-) 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()