Пример #1
0
        /// <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);
        }
Пример #2
0
    /// <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);
    }
Пример #3
0
        /// <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);
        }
Пример #4
0
    /// <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
    }