using System.Data;
namespace Umbraco.Core.Persistence
{
internal static class DbCommandExtensions
{
///
/// Unwraps a database command.
///
/// UmbracoDatabase wraps the original database connection in various layers (see
/// OnConnectionOpened); this unwraps and returns the original database command.
public static IDbCommand UnwrapUmbraco(this IDbCommand command)
{
IDbCommand unwrapped;
var c = command;
do
{
unwrapped = c;
var profiled = unwrapped as StackExchange.Profiling.Data.ProfiledDbCommand;
if (profiled != null) unwrapped = profiled.InternalCommand;
} while (c != unwrapped);
return unwrapped;
}
}
}