public static EntityView Get(string database, string primaryKey, string schemaName, string tableName) { var db = FrapidDbServer.GetServer(); string sql = @"SELECT column_name, is_nullable = 'YES' AS is_nullable, udt_name as db_data_type, column_default as value, max_length, is_primary_key = 'YES' AS is_primary_key, data_type FROM public.poco_get_table_function_definition(@0::text, @1::text);"; if (!db.ProviderName.ToUpperInvariant().Equals("NPGSQL")) { string procedure = FrapidDbServer.DefaultSchemaQualify("poco_get_table_function_definition"); sql = db.GetProcedureCommand(procedure, new[] { "@0", "@1" }); } var columns = Factory.Get <EntityColumn>(database, sql, schemaName, tableName).ToList(); var meta = new EntityView { PrimaryKey = primaryKey, Columns = columns }; return(meta); }
public static async Task <EntityView> GetAsync(string database, string primaryKey, string schemaName, string tableName) { var db = FrapidDbServer.GetServer(database); string procedure = FrapidDbServer.DefaultSchemaQualify(database, "poco_get_table_function_definition"); string sql = db.GetProcedureCommand(procedure, new[] { "@0", "@1" }); var columns = await Factory.GetAsync <EntityColumn>(database, sql, schemaName, tableName).ConfigureAwait(false); var meta = new EntityView { PrimaryKey = primaryKey, Columns = columns }; return(meta); }