¿Cómo puedo reciclar mi SqliteCommand para acelerar esta inserción masiva de Sqlite (iOS)?

Estoy usando el siguiente código para insertar masivamente 30000 filas (1000 filas a la vez). Aún así, no es tan rápido como podría ser. En este ejemplo ¿Mejorar el rendimiento INSERT por segundo de SQLite? Puedo ver que están creando laSqliteCommand solo una vez y luego reycle lo reiniciará y eliminará los enlaces. Sin embargo, no puedo encontrar los métodos apropiados en iOS / Monotouch. No hayReset() oClearBindings() o cualquier otra cosa que se parezca.

using ( var oConn = new SqliteConnection ( "Data Source=" + DB_NAME ) )
{
    oConn.Open (  );

    // Wrap the whole bulk insertion into one block to make it faster, otherwise one transaction per INSERT would be created.
    // Note that this is differen from "BEGIN TRANSACTION" which would increase memory usage a lot!
    SqliteCommand oCmd = new SqliteCommand ( "BEGIN", oConn );
    oCmd.ExecuteNonQuery (  );
    oCmd.Dispose (  );

    foreach ( MyObj oObj in aMyObjects )
    {
        oCmd = new SqliteCommand ( "INSERT INTO LocalObjects ( intID, intParentID, intObjectType, strName, dtModified VALUES (@intID, @intParentID, @intObjectType, @strName, @dtModified)", oConn );
        oCmd.Parameters.AddWithValue ( "@intID", oMyObj.ID );
        oCmd.Parameters.AddWithValue ( "@intParentID", oMyObj.ParentID );
        oCmd.Parameters.AddWithValue ( "@intObjectType", ( int ) oMyObj.Type );
        oCmd.Parameters.AddWithValue ( "@strName", oMyObj.Name );
        oCmd.Parameters.AddWithValue ( "@dtModified", oMyObj.Modified );
        oCmd.ExecuteNonQuery (  );
        oCmd.Dispose (  );
    }

    oCmd = new SqliteCommand ( "END", oConn );
    oCmd.ExecuteNonQuery (  );
    oCmd.Dispose (  );

    oConn.Close (  );
    oConn.Dispose (  );
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta