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(); } } } }
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); }
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)); } } } }