public IDatabaseSchema GetSchema(string connectionString, Options options) { var schema = new SqlSchema { [ObjectType.Table] = GetUserTables(connectionString), [ObjectType.View] = GetViews(connectionString), [ObjectType.Procedure] = GetProcedures(connectionString), [ObjectType.TableFunction] = GetTableFunctions(connectionString), [ObjectType.ScalarFunction] = GetScalarFunctions(connectionString), }; return(schema); }
public async Task <IDatabaseSchema> GetSchemaAsync(string connectionString, Options options) { // Start loading all the different data sets without awaiting any of them var tableTask = Task.Run(() => GetUserTables(connectionString)); var viewTask = Task.Run(() => GetViews(connectionString)); var procTask = Task.Run(() => GetProcedures(connectionString)); var tableFuncTask = Task.Run(() => GetTableFunctions(connectionString)); var scalarFuncTask = Task.Run(() => GetScalarFunctions(connectionString)); var schema = new SqlSchema { [ObjectType.Table] = await tableTask, [ObjectType.View] = await viewTask, [ObjectType.Procedure] = await procTask, [ObjectType.TableFunction] = await tableFuncTask, [ObjectType.ScalarFunction] = await scalarFuncTask, }; return(schema); }