Skip to content

Commit a43f8e4

Browse files
authored
Fix NREs in metrics tags logging (#4571)
* force enable metrics * fix NRE issues * restore metrics test setup
1 parent 832ac7e commit a43f8e4

File tree

10 files changed

+63
-55
lines changed

10 files changed

+63
-55
lines changed

Source/LinqToDB/Async/AsyncDbConnection.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public virtual void Open()
4646
{
4747
using var a = ActivityService.Start(ActivityID.ConnectionOpen);
4848
Connection.Open();
49-
a?.AddQueryInfo(DataConnection!, Connection, null);
49+
a?.AddQueryInfo(DataConnection, Connection, null);
5050
}
5151

5252
public virtual Task OpenAsync(CancellationToken cancellationToken)
@@ -56,9 +56,9 @@ public virtual Task OpenAsync(CancellationToken cancellationToken)
5656
if (a is null)
5757
return Connection.OpenAsync(cancellationToken);
5858

59-
return CallAwaitUsing(a, DataConnection!, Connection, cancellationToken);
59+
return CallAwaitUsing(a, DataConnection, Connection, cancellationToken);
6060

61-
static async Task CallAwaitUsing(AsyncDisposableWrapper activity, DataConnection dataConnection, DbConnection connection, CancellationToken token)
61+
static async Task CallAwaitUsing(AsyncDisposableWrapper activity, DataConnection? dataConnection, DbConnection connection, CancellationToken token)
6262
{
6363
await using (activity)
6464
{
@@ -70,14 +70,14 @@ static async Task CallAwaitUsing(AsyncDisposableWrapper activity, DataConnection
7070

7171
public virtual void Close()
7272
{
73-
using var _ = ActivityService.Start(ActivityID.ConnectionClose)?.AddQueryInfo(DataConnection!, Connection, null);
73+
using var _ = ActivityService.Start(ActivityID.ConnectionClose)?.AddQueryInfo(DataConnection, Connection, null);
7474
Connection.Close();
7575
}
7676

7777
public virtual Task CloseAsync()
7878
{
7979
#if NET6_0_OR_GREATER
80-
var a = ActivityService.StartAndConfigureAwait(ActivityID.ConnectionCloseAsync)?.AddQueryInfo(DataConnection!, Connection, null);
80+
var a = ActivityService.StartAndConfigureAwait(ActivityID.ConnectionCloseAsync)?.AddQueryInfo(DataConnection, Connection, null);
8181

8282
if (a is null)
8383
return Connection.CloseAsync();
@@ -90,7 +90,7 @@ static async Task CallAwaitUsing(AsyncDisposableWrapper activity, DbConnection c
9090
await connection.CloseAsync().ConfigureAwait(Common.Configuration.ContinueOnCapturedContext);
9191
}
9292
#else
93-
using var _ = ActivityService.Start(ActivityID.ConnectionCloseAsync)?.AddQueryInfo(DataConnection!, Connection, null);
93+
using var _ = ActivityService.Start(ActivityID.ConnectionCloseAsync)?.AddQueryInfo(DataConnection, Connection, null);
9494

9595
Close();
9696
return Task.CompletedTask;
@@ -99,14 +99,14 @@ static async Task CallAwaitUsing(AsyncDisposableWrapper activity, DbConnection c
9999

100100
public virtual IAsyncDbTransaction BeginTransaction()
101101
{
102-
using var a = ActivityService.Start(ActivityID.ConnectionBeginTransaction)?.AddQueryInfo(DataConnection!, Connection, null);
103-
return AsyncFactory.Create(Connection.BeginTransaction());
102+
using var a = ActivityService.Start(ActivityID.ConnectionBeginTransaction)?.AddQueryInfo(DataConnection, Connection, null);
103+
return AsyncFactory.CreateAndSetDataContext(DataConnection, Connection.BeginTransaction());
104104
}
105105

106106
public virtual IAsyncDbTransaction BeginTransaction(IsolationLevel isolationLevel)
107107
{
108-
using var a = ActivityService.Start(ActivityID.ConnectionBeginTransaction)?.AddQueryInfo(DataConnection!, Connection, null);
109-
return AsyncFactory.Create(Connection.BeginTransaction(isolationLevel));
108+
using var a = ActivityService.Start(ActivityID.ConnectionBeginTransaction)?.AddQueryInfo(DataConnection, Connection, null);
109+
return AsyncFactory.CreateAndSetDataContext(DataConnection, Connection.BeginTransaction(isolationLevel));
110110
}
111111

112112
#if !NET6_0_OR_GREATER
@@ -124,23 +124,23 @@ public virtual ValueTask<IAsyncDbTransaction> BeginTransactionAsync(IsolationLev
124124
#else
125125
public virtual async ValueTask<IAsyncDbTransaction> BeginTransactionAsync(CancellationToken cancellationToken)
126126
{
127-
await using (ActivityService.StartAndConfigureAwait(ActivityID.ConnectionBeginTransactionAsync)?.AddQueryInfo(DataConnection!, Connection, null))
127+
await using (ActivityService.StartAndConfigureAwait(ActivityID.ConnectionBeginTransactionAsync)?.AddQueryInfo(DataConnection, Connection, null))
128128
{
129129
var transaction = await Connection.BeginTransactionAsync(cancellationToken)
130130
.ConfigureAwait(Common.Configuration.ContinueOnCapturedContext);
131131

132-
return AsyncFactory.Create(transaction);
132+
return AsyncFactory.CreateAndSetDataContext(DataConnection, transaction);
133133
}
134134
}
135135

136136
public virtual async ValueTask<IAsyncDbTransaction> BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
137137
{
138-
await using (ActivityService.StartAndConfigureAwait(ActivityID.ConnectionBeginTransactionAsync)?.AddQueryInfo(DataConnection!, Connection, null))
138+
await using (ActivityService.StartAndConfigureAwait(ActivityID.ConnectionBeginTransactionAsync)?.AddQueryInfo(DataConnection, Connection, null))
139139
{
140140
var transaction = await Connection.BeginTransactionAsync(isolationLevel, cancellationToken)
141141
.ConfigureAwait(Common.Configuration.ContinueOnCapturedContext);
142142

143-
return AsyncFactory.Create(transaction);
143+
return AsyncFactory.CreateAndSetDataContext(DataConnection, transaction);
144144
}
145145
}
146146

@@ -150,7 +150,7 @@ public virtual async ValueTask<IAsyncDbTransaction> BeginTransactionAsync(Isolat
150150

151151
public virtual void Dispose()
152152
{
153-
using var _ = ActivityService.Start(ActivityID.ConnectionDispose)?.AddQueryInfo(DataConnection!, Connection, null);
153+
using var _ = ActivityService.Start(ActivityID.ConnectionDispose)?.AddQueryInfo(DataConnection, Connection, null);
154154
Connection.Dispose();
155155
}
156156

@@ -161,7 +161,7 @@ public virtual ValueTask DisposeAsync()
161161
{
162162
if (Connection is IAsyncDisposable asyncDisposable)
163163
{
164-
var a = ActivityService.StartAndConfigureAwait(ActivityID.ConnectionDisposeAsync)?.AddQueryInfo(DataConnection!, Connection, null);
164+
var a = ActivityService.StartAndConfigureAwait(ActivityID.ConnectionDisposeAsync)?.AddQueryInfo(DataConnection, Connection, null);
165165

166166
if (a is null)
167167
return asyncDisposable.DisposeAsync();

Source/LinqToDB/Async/AsyncDbTransaction.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,20 @@ protected internal AsyncDbTransaction(DbTransaction transaction)
3030

3131
public virtual void Commit ()
3232
{
33-
using var a = ActivityService.Start(ActivityID.TransactionCommit)?.AddQueryInfo(DataConnection!, DataConnection!.Connection, null);
33+
using var a = ActivityService.Start(ActivityID.TransactionCommit)?.AddQueryInfo(DataConnection, DataConnection?.Connection, null);
3434
Transaction.Commit();
3535
}
3636

3737
public virtual void Rollback()
3838
{
39-
using var a = ActivityService.Start(ActivityID.TransactionRollback)?.AddQueryInfo(DataConnection!, DataConnection!.Connection, null);
39+
using var a = ActivityService.Start(ActivityID.TransactionRollback)?.AddQueryInfo(DataConnection, DataConnection?.Connection, null);
4040
Transaction.Rollback();
4141
}
4242

4343
public virtual Task CommitAsync(CancellationToken cancellationToken)
4444
{
4545
#if NET6_0_OR_GREATER
46-
var a = ActivityService.StartAndConfigureAwait(ActivityID.TransactionCommitAsync)?.AddQueryInfo(DataConnection!, DataConnection!.Connection, null);
46+
var a = ActivityService.StartAndConfigureAwait(ActivityID.TransactionCommitAsync)?.AddQueryInfo(DataConnection, DataConnection?.Connection, null);
4747

4848
if (a is null)
4949
return Transaction.CommitAsync(cancellationToken);
@@ -56,7 +56,7 @@ static async Task CallAwaitUsing(AsyncDisposableWrapper activity, DbTransaction
5656
await transaction.CommitAsync(token).ConfigureAwait(Common.Configuration.ContinueOnCapturedContext);
5757
}
5858
#else
59-
using var a = ActivityService.Start(ActivityID.TransactionCommitAsync)?.AddQueryInfo(DataConnection!, DataConnection!.Connection, null);
59+
using var a = ActivityService.Start(ActivityID.TransactionCommitAsync)?.AddQueryInfo(DataConnection, DataConnection?.Connection, null);
6060

6161
Transaction.Commit();
6262
return Task.CompletedTask;
@@ -66,7 +66,7 @@ static async Task CallAwaitUsing(AsyncDisposableWrapper activity, DbTransaction
6666
public virtual Task RollbackAsync(CancellationToken cancellationToken)
6767
{
6868
#if NET6_0_OR_GREATER
69-
var a = ActivityService.StartAndConfigureAwait(ActivityID.TransactionRollbackAsync)?.AddQueryInfo(DataConnection!, DataConnection!.Connection, null);
69+
var a = ActivityService.StartAndConfigureAwait(ActivityID.TransactionRollbackAsync)?.AddQueryInfo(DataConnection, DataConnection?.Connection, null);
7070

7171
if (a is null)
7272
return Transaction.RollbackAsync(cancellationToken);
@@ -79,7 +79,7 @@ static async Task CallAwaitUsing(AsyncDisposableWrapper activity, DbTransaction
7979
await transaction.RollbackAsync(token).ConfigureAwait(Common.Configuration.ContinueOnCapturedContext);
8080
}
8181
#else
82-
using var a = ActivityService.Start(ActivityID.TransactionRollbackAsync)?.AddQueryInfo(DataConnection!, DataConnection!.Connection, null);
82+
using var a = ActivityService.Start(ActivityID.TransactionRollbackAsync)?.AddQueryInfo(DataConnection, DataConnection?.Connection, null);
8383

8484
Transaction.Rollback();
8585
return Task.CompletedTask;
@@ -90,7 +90,7 @@ static async Task CallAwaitUsing(AsyncDisposableWrapper activity, DbTransaction
9090

9191
public virtual void Dispose()
9292
{
93-
using var _ = ActivityService.Start(ActivityID.TransactionDispose)?.AddQueryInfo(DataConnection!, DataConnection!.Connection, null);
93+
using var _ = ActivityService.Start(ActivityID.TransactionDispose)?.AddQueryInfo(DataConnection, DataConnection?.Connection, null);
9494
Transaction.Dispose();
9595
}
9696

@@ -101,7 +101,7 @@ public virtual ValueTask DisposeAsync()
101101
{
102102
if (Transaction is IAsyncDisposable asyncDisposable)
103103
{
104-
var a = ActivityService.StartAndConfigureAwait(ActivityID.TransactionDisposeAsync)?.AddQueryInfo(DataConnection!, DataConnection!.Connection, null);
104+
var a = ActivityService.StartAndConfigureAwait(ActivityID.TransactionDisposeAsync)?.AddQueryInfo(DataConnection, DataConnection?.Connection, null);
105105

106106
if (a is null)
107107
return asyncDisposable.DisposeAsync();
@@ -115,7 +115,7 @@ static async ValueTask CallAwaitUsing(AsyncDisposableWrapper activity, IAsyncDis
115115
}
116116
}
117117

118-
using var _ = ActivityService.Start(ActivityID.TransactionDisposeAsync)?.AddQueryInfo(DataConnection!, DataConnection!.Connection, null);
118+
using var _ = ActivityService.Start(ActivityID.TransactionDisposeAsync)?.AddQueryInfo(DataConnection, DataConnection?.Connection, null);
119119

120120
Transaction.Dispose();
121121
return default;

Source/LinqToDB/Async/AsyncFactory.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ internal static IAsyncDbConnection SetDataContext(this IAsyncDbConnection connec
111111
return connection;
112112
}
113113

114-
internal static IAsyncDbTransaction CreateAndSetDataContext(DataConnection dataConnection, DbTransaction transaction)
114+
internal static IAsyncDbTransaction CreateAndSetDataContext(DataConnection? dataConnection, DbTransaction transaction)
115115
{
116116
var t = Create(transaction);
117117

@@ -121,12 +121,6 @@ internal static IAsyncDbTransaction CreateAndSetDataContext(DataConnection dataC
121121
return t;
122122
}
123123

124-
private static async Task<IAsyncDbTransaction> Wrap<TTransaction>(Task<TTransaction> transaction)
125-
where TTransaction: DbTransaction
126-
{
127-
return Create(await transaction.ConfigureAwait(Configuration.ContinueOnCapturedContext));
128-
}
129-
130124
private static async ValueTask<IAsyncDbTransaction> WrapValue<TTransaction>(ValueTask<TTransaction> transaction)
131125
where TTransaction : DbTransaction
132126
{

Source/LinqToDB/Data/DataConnection.Async.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ protected virtual async Task<int> ExecuteNonQueryAsync(CancellationToken cancell
431431
return result.Value;
432432
}
433433

434-
await using (ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteNonQueryAsync)?.AddQueryInfo(this, _command!.Connection!, _command))
434+
await using (ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteNonQueryAsync)?.AddQueryInfo(this, _command!.Connection, _command))
435435
{
436436
return await _command!.ExecuteNonQueryAsync(cancellationToken)
437437
.ConfigureAwait(Common.Configuration.ContinueOnCapturedContext);
@@ -524,7 +524,7 @@ internal async Task<int> ExecuteNonQueryDataAsync(CancellationToken cancellation
524524
return result.Value;
525525
}
526526

527-
await using (ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteNonQueryAsync)?.AddQueryInfo(this, _command!.Connection!, _command))
527+
await using (ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteNonQueryAsync)?.AddQueryInfo(this, _command!.Connection, _command))
528528
{
529529
return await _command!.ExecuteScalarAsync(cancellationToken)
530530
.ConfigureAwait(Common.Configuration.ContinueOnCapturedContext);
@@ -618,7 +618,7 @@ protected virtual async Task<DataReaderWrapper> ExecuteReaderAsync(
618618

619619
if (!result.HasValue)
620620
{
621-
await using (ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteReaderAsync)?.AddQueryInfo(this, _command!.Connection!, _command))
621+
await using (ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteReaderAsync)?.AddQueryInfo(this, _command!.Connection, _command))
622622
{
623623
reader = await _command!.ExecuteReaderAsync(commandBehavior, cancellationToken)
624624
.ConfigureAwait(Common.Configuration.ContinueOnCapturedContext);
@@ -634,7 +634,7 @@ protected virtual async Task<DataReaderWrapper> ExecuteReaderAsync(
634634
}
635635
else
636636
{
637-
await using (ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteReaderAsync)?.AddQueryInfo(this, _command!.Connection!, _command))
637+
await using (ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteReaderAsync)?.AddQueryInfo(this, _command!.Connection, _command))
638638
{
639639
reader = await _command!.ExecuteReaderAsync(commandBehavior, cancellationToken)
640640
.ConfigureAwait(Common.Configuration.ContinueOnCapturedContext);

Source/LinqToDB/Data/DataConnection.Configuration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ public static void Apply(DataConnection dataConnection, ConnectionOptions option
572572
dataConnection._closeConnection = false;
573573
dataConnection._disposeConnection = false;
574574

575-
dataConnection.TransactionAsync = AsyncFactory.Create(transaction);
575+
dataConnection.TransactionAsync = AsyncFactory.CreateAndSetDataContext(dataConnection, transaction);
576576
dataConnection.DataProvider = provider;
577577
dataConnection.MappingSchema = provider.MappingSchema;
578578

Source/LinqToDB/Data/DataConnection.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -876,7 +876,7 @@ protected virtual int ExecuteNonQuery(DbCommand command)
876876
return result.Value;
877877
}
878878

879-
using (ActivityService.Start(ActivityID.CommandExecuteNonQuery)?.AddQueryInfo(this, _command!.Connection!, _command))
879+
using (ActivityService.Start(ActivityID.CommandExecuteNonQuery)?.AddQueryInfo(this, _command!.Connection, _command))
880880
return command.ExecuteNonQuery();
881881
}
882882
catch (Exception ex) when (((IInterceptable<IExceptionInterceptor>)this).Interceptor is { } eInterceptor)
@@ -959,7 +959,7 @@ internal int ExecuteNonQueryCustom(DbCommand command, Func<DbCommand, int> custo
959959
return result.Value;
960960
}
961961

962-
using (ActivityService.Start(ActivityID.CommandExecuteNonQuery)?.AddQueryInfo(this, _command!.Connection!, _command))
962+
using (ActivityService.Start(ActivityID.CommandExecuteNonQuery)?.AddQueryInfo(this, _command!.Connection, _command))
963963
return customExecute(command);
964964
}
965965
catch (Exception ex) when (((IInterceptable<IExceptionInterceptor>)this).Interceptor is { } eInterceptor)
@@ -1132,7 +1132,7 @@ protected virtual DataReaderWrapper ExecuteReader(CommandBehavior commandBehavio
11321132

11331133
if (!result.HasValue)
11341134
{
1135-
using (ActivityService.Start(ActivityID.CommandExecuteReader)?.AddQueryInfo(this, _command!.Connection!, _command))
1135+
using (ActivityService.Start(ActivityID.CommandExecuteReader)?.AddQueryInfo(this, _command!.Connection, _command))
11361136
reader = _command!.ExecuteReader(commandBehavior);
11371137
}
11381138
else
@@ -1145,7 +1145,7 @@ protected virtual DataReaderWrapper ExecuteReader(CommandBehavior commandBehavio
11451145
}
11461146
else
11471147
{
1148-
using (ActivityService.Start(ActivityID.CommandExecuteReader)?.AddQueryInfo(this, _command!.Connection!, _command))
1148+
using (ActivityService.Start(ActivityID.CommandExecuteReader)?.AddQueryInfo(this, _command!.Connection, _command))
11491149
reader = _command!.ExecuteReader(commandBehavior);
11501150
}
11511151

Source/LinqToDB/Data/RetryPolicy/RetryingDbCommand.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,25 +84,25 @@ protected override DbParameter CreateDbParameter()
8484

8585
protected override DbDataReader ExecuteDbDataReader(CommandBehavior behavior)
8686
{
87-
using var m = ActivityService.Start(ActivityID.CommandExecuteReader)?.AddQueryInfo(_dataConnection, _command.Connection!, _command);
87+
using var m = ActivityService.Start(ActivityID.CommandExecuteReader)?.AddQueryInfo(_dataConnection, _command.Connection, _command);
8888
return _policy.Execute(() => _command.ExecuteReader(behavior));
8989
}
9090

9191
public override int ExecuteNonQuery()
9292
{
93-
using var m = ActivityService.Start(ActivityID.CommandExecuteNonQuery)?.AddQueryInfo(_dataConnection, _command.Connection!, _command);
93+
using var m = ActivityService.Start(ActivityID.CommandExecuteNonQuery)?.AddQueryInfo(_dataConnection, _command.Connection, _command);
9494
return _policy.Execute(_command.ExecuteNonQuery);
9595
}
9696

9797
public override object? ExecuteScalar()
9898
{
99-
using var m = ActivityService.Start(ActivityID.CommandExecuteScalar)?.AddQueryInfo(_dataConnection, _command.Connection!, _command);
99+
using var m = ActivityService.Start(ActivityID.CommandExecuteScalar)?.AddQueryInfo(_dataConnection, _command.Connection, _command);
100100
return _policy.Execute(_command.ExecuteScalar);
101101
}
102102

103103
protected override Task<DbDataReader> ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
104104
{
105-
var a = ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteReaderAsync)?.AddQueryInfo(_dataConnection, _command.Connection!, _command);
105+
var a = ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteReaderAsync)?.AddQueryInfo(_dataConnection, _command.Connection, _command);
106106

107107
if (a is null)
108108
return _policy.ExecuteAsync(ct => _command.ExecuteReaderAsync(behavior, ct), cancellationToken);
@@ -119,7 +119,7 @@ async Task<DbDataReader> CallAwaitUsing()
119119

120120
public override Task<int> ExecuteNonQueryAsync(CancellationToken cancellationToken)
121121
{
122-
var a = ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteNonQueryAsync)?.AddQueryInfo(_dataConnection, _command.Connection!, _command);
122+
var a = ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteNonQueryAsync)?.AddQueryInfo(_dataConnection, _command.Connection, _command);
123123

124124
if (a is null)
125125
return _policy.ExecuteAsync(_command.ExecuteNonQueryAsync, cancellationToken);
@@ -136,7 +136,7 @@ async Task<int> CallAwaitUsing()
136136

137137
public override Task<object?> ExecuteScalarAsync(CancellationToken cancellationToken)
138138
{
139-
var a = ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteScalarAsync)?.AddQueryInfo(_dataConnection, _command.Connection!, _command);
139+
var a = ActivityService.StartAndConfigureAwait(ActivityID.CommandExecuteScalarAsync)?.AddQueryInfo(_dataConnection, _command.Connection, _command);
140140

141141
if (a is null)
142142
return _policy.ExecuteAsync(_command.ExecuteScalarAsync, cancellationToken);

Source/LinqToDB/Tools/ActivityBase.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,19 @@ public virtual IActivity AddTag(ActivityTagID key, object? value)
3131
return this;
3232
}
3333

34-
public virtual IActivity AddQueryInfo(DataConnection context, DbConnection connection, DbCommand? command)
34+
public virtual IActivity AddQueryInfo(DataConnection? context, DbConnection? connection, DbCommand? command)
3535
{
36-
AddTag(ActivityTagID.ConfigurationString, context. ConfigurationString);
37-
AddTag(ActivityTagID.DataProviderName, context. DataProvider.Name);
38-
AddTag(ActivityTagID.DataSourceName, connection.DataSource);
39-
AddTag(ActivityTagID.DatabaseName, connection.Database);
36+
if (context != null)
37+
{
38+
AddTag(ActivityTagID.ConfigurationString, context.ConfigurationString);
39+
AddTag(ActivityTagID.DataProviderName, context.DataProvider.Name);
40+
}
41+
42+
if (connection != null)
43+
{
44+
AddTag(ActivityTagID.DataSourceName, connection.DataSource);
45+
AddTag(ActivityTagID.DatabaseName, connection.Database);
46+
}
4047

4148
if (command != null)
4249
{

0 commit comments

Comments
 (0)