24 lines
1004 B
C#
24 lines
1004 B
C#
namespace EnVisage
|
|
{
|
|
using System;
|
|
using System.Data.Entity;
|
|
using System.Data.SqlClient;
|
|
|
|
public static class DbContextExtensions
|
|
{
|
|
public static string GetClientConnectionId(this DbContext context)
|
|
{
|
|
if (context == null)
|
|
throw new ArgumentNullException(nameof(context));
|
|
|
|
// if SaveChanges is called from external parent transaction
|
|
if (context.Database != null && context.Database.CurrentTransaction != null)
|
|
if (context.Database.CurrentTransaction.UnderlyingTransaction != null)
|
|
if (context.Database.CurrentTransaction.UnderlyingTransaction.Connection != null)
|
|
if (context.Database.CurrentTransaction.UnderlyingTransaction.Connection is SqlConnection)
|
|
return (context.Database.CurrentTransaction.UnderlyingTransaction.Connection as SqlConnection).ClientConnectionId.ToString();
|
|
|
|
return null;
|
|
}
|
|
}
|
|
} |