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; } } }