public String obterNomeMapeado(string propriedade) { String[] props = propriedade.Split('.'); if (props.Length == 1) { return(Mapeamento[propriedade]); } Uniao uniao = listaJoins.FirstOrDefault(j => j.Nome == props[0]); if (uniao == null) { throw new Exception(String.Format("A propriedade {0} não foi adicionada como Join.", props[0])); } return(uniao.Mapeamento[props[1]]); }
protected ISqlConstrutor adicionaUniao(TipoUniao tipoUniao, String propriedade, String tabela, String apelido = null, String condicionalAdicional = null) { Type tipo = entidade.obterTiposMapeado()[propriedade]; PropertyInfo prop = entidade.GetType().GetProperty(propriedade); if (prop == null) { throw new Exception(String.Format("Propriedade {0} da entidade {1} não possui a assinatura Mapear.", propriedade, entidade.GetType().FullName)); } Uniao u = new Uniao(this, propriedade, tipo, tabela, apelido) { TipoUniao = tipoUniao, CondicaoAdicional = condicionalAdicional }; listaJoins.Add(u); return(this); }