Esempio n. 1
0
        private static IEnumerable <Tuple <string, string> > GetDatabaseTables(
            ObjectContext context, DbConnection connection, IPseudoProvider provider)
        {
            using (var command = new InterceptableDbCommand(
                       connection.CreateCommand(), context.InterceptionContext))
            {
                command.CommandText = provider.StoreSchemaTablesQuery;

                var executionStrategy = DbProviderServices.GetExecutionStrategy(connection);
                try
                {
                    return(executionStrategy.Execute(
                               () =>
                    {
                        if (connection.State == ConnectionState.Broken)
                        {
                            connection.Close();
                        }

                        if (connection.State == ConnectionState.Closed)
                        {
                            connection.Open();
                        }

                        using (var reader = command.ExecuteReader())
                        {
                            var tables = new List <Tuple <string, string> >();
                            while (reader.Read())
                            {
                                tables.Add(
                                    Tuple.Create(
                                        reader["SchemaName"] as string,
                                        reader["Name"] as string));
                            }

                            return tables;
                        }
                    }));
                }
                finally
                {
                    if (connection.State != ConnectionState.Closed)
                    {
                        connection.Close();
                    }
                }
            }
        }
Esempio n. 2
0
 public virtual bool QueryForTableExistence(
     IPseudoProvider provider, ClonedObjectContext clonedObjectContext, List <EntitySet> modelTables)
 {
     using (new TransactionScope(TransactionScopeOption.Suppress))
     {
         if (provider.AnyModelTableExistsInDatabase(
                 clonedObjectContext.ObjectContext,
                 clonedObjectContext.Connection,
                 modelTables,
                 EdmMetadataContext.TableName))
         {
             return(true);
         }
     }
     return(false);
 }
Esempio n. 3
0
        private static IEnumerable <Tuple <string, string> > GetDatabaseTables(DbConnection connection, IPseudoProvider provider)
        {
            using (var command = connection.CreateCommand())
            {
                command.CommandText = provider.StoreSchemaTablesQuery;
                connection.Open();

                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        yield return(Tuple.Create(
                                         reader["SchemaName"] as string,
                                         reader["Name"] as string));
                    }
                }
            }
        }