Пример #1
0
        public String ConstruirSqlConsultarRegistros(Tabela tabela)
        {
            String sql   = "select ";
            String joins = "";

            foreach (Coluna c in tabela.Colunas.Where(ee => ee.Visivel || ee.PrimaryKey).OrderBy(ee => ee.Ordem))
            {
                if (tabela.Relacoes.Where(ee => ee.Tabela_Pai != tabela.Nome && ee.Coluna.Equals(c.Nome)).Count() == 0)
                {
                    sql += tabela.Nome + "." + c.Nome + ", ";
                }
                else
                {
                    Relacao r = tabela.Relacoes.Where(ee => ee.Tabela_Pai != tabela.Nome && ee.Coluna.Equals(c.Nome)).Single();
                    joins += " inner join " + r.Tabela_Pai +
                             " on " + r.Tabela_Pai + "." + r.Campo_Pai + " = " + tabela.Nome + "." + r.Coluna;
                    sql += r.Tabela_Pai + "." + r.Nome_Pai + " as " + c.Nome + ", ";
                }
            }

            sql  = sql.Substring(0, sql.Length - 2);
            sql += " from " + tabela.Nome + joins;

            if (tabela.Colunas.Count(ee => ee.Equals("dm_situacao")) > 0)
            {
                sql += " where dm_situacao = 1";
            }

            return(sql);
        }
Пример #2
0
 public Tabela PreencherRelacao(Tabela t)
 {
     foreach (Coluna c in t.Colunas)
     {
         foreach (tb_relacao r in Entidades.tb_relacao.Where(ee => ee.col_nome.Equals(c.Nome) && ee.dm_situacao.Value))
         {
             Relacao nova = new Relacao();
             nova.Coluna              = r.col_nome;
             nova.Campo_Pai           = r.pai_campo;
             nova.Nome_Pai            = r.pai_nome;
             nova.Tabela_Pai          = r.pai_tabela;
             nova.auto_relacionamento = r.dm_auto_relacionamento.Value;
             t.Relacoes.Add(nova);
         }
     }
     return(t);
 }