/// <summary>A SqlBulkCopy extension method that gets a connection.</summary> /// <param name="this">The @this to act on.</param> /// <returns>The connection.</returns> public static SqlConnection GetConnection(this SqlBulkCopy @this) { var type = @this.GetType(); var field = type.GetField("_connection", BindingFlags.NonPublic | BindingFlags.Instance); return(field?.GetValue(@this) as SqlConnection); }
/// <summary> /// A SqlBulkCopy extension method that return the SqlTransaction from the SqlBulkCopy. /// </summary> /// <param name="this">The @this to act on.</param> /// <returns>The SqlTransaction from the SqlBulkCopy.</returns> /// <example> /// <code> /// using System.Data.SqlClient; /// using Microsoft.VisualStudio.TestTools.UnitTesting; /// using Z.ExtensionMethods; /// /// namespace ExtensionMethods.Examples /// { /// [TestClass] /// public class System_Data_SqlClient_SqlBulkCopy_GetTransaction /// { /// [TestMethod] /// public void GetTransaction() /// { /// // Examples /// using (var conn = new SqlConnection(My.Config.ConnectionString.UnitTest.ConnectionString)) /// { /// conn.Open(); /// SqlTransaction trans = conn.BeginTransaction(); /// /// using (var @this = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default, trans)) /// { /// SqlTransaction result = @this.GetTransaction(); /// /// // Unit Test /// Assert.AreEqual(trans, result); /// } /// } /// } /// } /// } /// </code> /// </example> public static SqlTransaction GetTransaction(this SqlBulkCopy @this) { Type type = @this.GetType(); FieldInfo field = type.GetField("_externalTransaction", BindingFlags.NonPublic | BindingFlags.Instance); return(field.GetValue(@this) as SqlTransaction); }
/// <summary> /// Get transaction /// </summary> /// <param name="bulk"></param> /// <returns></returns> public static SqlTransaction GetTransaction(this SqlBulkCopy bulk) { bulk.CheckNull(nameof(bulk)); var type = bulk.GetType(); var field = type.GetField("_externalTransaction", BindingFlags.NonPublic | BindingFlags.Instance); return(field?.GetValue(bulk) as SqlTransaction); }
/// <summary>A SqlBulkCopy extension method that gets a connection.</summary> /// <param name="this">The @this to act on.</param> /// <returns>The connection.</returns> public static SqlConnection GetConnection(this SqlBulkCopy @this) { Type type = @this.GetType(); FieldInfo field = type.GetField("_connection", BindingFlags.NonPublic | BindingFlags.Instance); // ReSharper disable PossibleNullReferenceException return(field.GetValue(@this) as SqlConnection); // ReSharper restore PossibleNullReferenceException }