EnVisageOnline/Main/Source/EnVisage/Code/Extensions/DbContextExtensions.cs

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