public virtual void PersistirTodasEntidades(Object entidade) { configuracao.SEMPRE_VERIFICAR_BANCO = true; List <Persist> lst = ListaPersistEntidade = fabrica.CriarPersist(entidade); String[] colunas = fabrica.CriarColunas(lst); String tabela = auxiliar.CriarNomeTabela(entidade); auxiliar.VerificaTabelaBanco(lst, tabela, entidade); configuracao.SEMPRE_VERIFICAR_BANCO = false; }
/// <summary> /// Insere uma coluna no banco referente ao metodo da entidade. /// </summary> public void AlterTable(String tabela, List <Persist> param, Object o) { if (!(bool)configuracao.ALTERA_TABELA) { throw new System.ArgumentException("A tabela " + tabela + " referente a entidade " + o.GetType().ToString() + " possui colunas diferentes", "YLibrary"); } string alter = @"ALTER TABLE {0} ADD "; alter = String.Format(alter, tabela); foreach (Persist s in param) { if (VerificaTipo(s.Type.Name.ToUpper())) { alter += " {0} " + dao.DbTipo(s.Type.Name.ToString().ToUpper(), configuracao); alter = String.Format(alter, s.DscNome); } else { if (s.ObjValor == null) { o = Activator.CreateInstance(s.Type); } else { o = s.ObjValor; } List <Persist> obj = fabrica.CriarPersist(o); tabela = CriarNomeTabela(o); alter += s.DscNome.ToLower() + " int FOREIGN KEY REFERENCES " + tabela + "(" + s.DscNome.ToLower() + "), "; VerificaTabelaBanco(obj, tabela, o); } } alter = alter.Substring(0, alter.Length - 2); dao.ExecuteNonQuery(alter); }