@@ -231,33 +231,34 @@ public Session OpenSession(SessionConfiguration configuration)
231231 {
232232 ArgumentValidator . EnsureArgumentNotNull ( configuration , "configuration" ) ;
233233
234- return OpenSession ( configuration , configuration . Supports ( SessionOptions . AutoActivation ) ) ;
234+ return OpenSessionInternal ( configuration ,
235+ null ,
236+ configuration . Supports ( SessionOptions . AutoActivation ) ) ;
235237 }
236238
237- internal Session OpenSession ( SessionConfiguration configuration , bool activate )
239+ internal Session OpenSessionInternal ( SessionConfiguration configuration , StorageNode storageNode , bool activate )
238240 {
239- ArgumentValidator . EnsureArgumentNotNull ( configuration , " configuration" ) ;
241+ ArgumentValidator . EnsureArgumentNotNull ( configuration , nameof ( configuration ) ) ;
240242 configuration . Lock ( true ) ;
241243
242244 if ( isDebugEventLoggingEnabled ) {
243245 OrmLog . Debug ( Strings . LogOpeningSessionX , configuration ) ;
244246 }
245247
246248 Session session ;
247-
248249 if ( SingleConnection != null ) {
249250 // Ensure that we check shared connection availability
250251 // and acquire connection atomically.
251252 lock ( singleConnectionGuard ) {
252253 if ( singleConnectionOwner != null )
253254 throw new InvalidOperationException ( string . Format (
254255 Strings . ExSessionXStillUsesSingleAvailableConnection , singleConnectionOwner ) ) ;
255- session = new Session ( this , configuration , activate ) ;
256+ session = new Session ( this , storageNode , configuration , activate ) ;
256257 singleConnectionOwner = session ;
257258 }
258259 }
259260 else
260- session = new Session ( this , configuration , activate ) ;
261+ session = new Session ( this , storageNode , configuration , activate ) ;
261262
262263 NotifySessionOpen ( session ) ;
263264 return session ;
@@ -372,12 +373,14 @@ public Task<Session> OpenSessionAsync(SessionConfiguration configuration)
372373 /// <seealso cref="Session"/>
373374 public Task < Session > OpenSessionAsync ( SessionConfiguration configuration , CancellationToken cancellationToken )
374375 {
375- return OpenSessionInternalAsync ( configuration , configuration . Supports ( SessionOptions . AutoActivation ) , cancellationToken ) ;
376+ return OpenSessionInternalAsync ( configuration , null ,
377+ configuration . Supports ( SessionOptions . AutoActivation ) , cancellationToken ) ;
376378 }
377379
378- internal async Task < Session > OpenSessionInternalAsync ( SessionConfiguration configuration , bool activate , CancellationToken cancellationToken )
380+ internal async Task < Session > OpenSessionInternalAsync ( SessionConfiguration configuration , StorageNode storageNode , bool activate , CancellationToken cancellationToken )
379381 {
380- ArgumentValidator . EnsureArgumentNotNull ( configuration , "configuration" ) ;
382+ ArgumentValidator . EnsureArgumentNotNull ( configuration , nameof ( configuration ) ) ;
383+
381384 configuration . Lock ( true ) ;
382385
383386 if ( isDebugEventLoggingEnabled ) {
@@ -392,15 +395,15 @@ internal async Task<Session> OpenSessionInternalAsync(SessionConfiguration confi
392395 if ( singleConnectionOwner != null )
393396 throw new InvalidOperationException ( string . Format (
394397 Strings . ExSessionXStillUsesSingleAvailableConnection , singleConnectionOwner ) ) ;
395- session = new Session ( this , configuration , false ) ;
398+ session = new Session ( this , storageNode , configuration , false ) ;
396399 singleConnectionOwner = session ;
397400 }
398401 }
399402 else {
400403 // DO NOT make session active right from constructor.
401404 // That would make session accessible for user before
402405 // connection become opened.
403- session = new Session ( this , configuration , false ) ;
406+ session = new Session ( this , storageNode , configuration , false ) ;
404407 try {
405408 await ( ( SqlSessionHandler ) session . Handler ) . OpenConnectionAsync ( cancellationToken ) . ContinueWith ( ( t ) => {
406409 if ( activate )
0 commit comments