protected SqlConstrutor(IEntidade entidade, String tabela, String apelido = null) { this.entidade = entidade; tabelaPrincipal = tabela; apelidoPrincipal = String.IsNullOrEmpty(apelido) ? entidade.GetType().Name : apelido; listaJoins = new List <Uniao>(); Mapeamento = MapeamentoUtils.obterMapeamento(entidade, apelidoPrincipal); }
public static List <Resultado> obterLista <Resultado>(IDataReader dr, int maxLinhas = 0) { Type tipo = typeof(Resultado); ConstructorInfo construtor = tipo.GetConstructor(Type.EmptyTypes); if (construtor == null) { throw new Exception(String.Format("Não foi possível encontrar construtor vazio para a classe {0}.", tipo.FullName)); } Dictionary <String, String> mapeamento = MapeamentoUtils.obterMapeamento(tipo); throw new Exception(); }
public Uniao(SqlConstrutor <Tipo> construtor, String nome, Type tipo, String tabela, String apelido = null) { sqlConstrutor = construtor; Nome = nome; Tipo = tipo; Tabela = tabela; Apelido = apelido ?? tabela; ConstructorInfo constructorInfo = Tipo.GetConstructor(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[0], null); instancia = (IEntidade)constructorInfo.Invoke(null); mapear = sqlConstrutor.entidade.GetType().GetProperty(nome).obterAtributo <Mapear>(true);//.GetRuntimeProperty(nome).GetCustomAttribute<Mapear>(); if (mapear == null) { throw new Exception(String.Format("Propriedade {0} da entidade {1} não possui a assinatura Mapear.", Nome, sqlConstrutor.entidade.GetType().FullName)); } Mapeamento = MapeamentoUtils.obterMapeamento(instancia, Apelido); }
protected Dictionary <String, String> obterMapeamento() { if (mapeamento != null) { return(mapeamento); } mapeamento = MapeamentoUtils.obterMapeamento(obterInstancia(), sufixoMapeamento); return(mapeamento); //mapeamento = new Dictionary<string, string>(); //Type tipo = obterInstancia().GetType(); //MapeamentoImplicito mi = tipo.GetCustomAttribute<MapeamentoImplicito>(true); //PropertyInfo[] propriedades = tipo.GetProperties(); //if (mi == null) //{ // foreach (PropertyInfo p in propriedades) // { // Mapear mapear = p.GetCustomAttribute<Mapear>(true); // if (mapear == null) // continue; // mapeamento.Add(p.Name, converteMapeamento(String.IsNullOrEmpty(mapear.ColunaBanco) ? p.Name : mapear.ColunaBanco)); // } //} //else //{ // foreach (PropertyInfo p in propriedades) // { // NaoMapear naoMapear = p.GetCustomAttribute<NaoMapear>(true); // if (naoMapear != null) // continue; // Mapear mapear = p.GetCustomAttribute<Mapear>(true); // if (mapear == null) // mapeamento.Add(p.Name, converteMapeamento(p.Name)); // else // mapeamento.Add(p.Name, converteMapeamento(String.IsNullOrEmpty(mapear.ColunaBanco) ? p.Name : mapear.ColunaBanco)); // } //} //return mapeamento; }