示例#1
0
        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);
        }
示例#2
0
        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);
        }