private IEnumerable <Ocorrencia> GetOcorrenciasCompletas(long cdRota, string query) { using (var dapperConnection = AbreConexao()) { dapperConnection.Open(); // Multi-Mapping List <Ocorrencia> ocorrencias = dapperConnection.Query <Ocorrencia>(query, new[] { typeof(Ocorrencia), typeof(Parada), typeof(PontoInteresse), typeof(CategoriaPontoInteresse) }, objects => { Ocorrencia Ocorrencia = objects[0] as Ocorrencia; Parada Parada = objects[1] as Parada; PontoInteresse PontoInteresse = objects[2] as PontoInteresse; CategoriaPontoInteresse CategoriaPontoInteresse = objects[3] as CategoriaPontoInteresse; if (PontoInteresse != null) { PontoInteresse.CategoriaPontoInteresse = CategoriaPontoInteresse; } if (Parada != null) { Parada.PontoInteresse = PontoInteresse; } if (Ocorrencia != null) { Ocorrencia.Parada = Parada; } return(Ocorrencia); }, splitOn: "CdOcorrencia, CdParada, CdPontoInteresse, CdCategoriaPontoInteresse", param: new { CdRota = cdRota }).AsList(); return(ocorrencias); } }
public IEnumerable <Ocorrencia> GetOcorrencias(long cdRota, string descricaoCategoriaPontoInteresse) { using (var dapperConnection = AbreConexao()) { dapperConnection.Open(); // Multi-Mapping List <Ocorrencia> ocorrencias = dapperConnection.Query <Ocorrencia>( @"SELECT CAT_PIM.*, PIN.*, PARADA.*, OCORRENCIA.* FROM TB_OCORRENCIA OCORRENCIA LEFT JOIN TB_PARADA PARADA ON OCORRENCIA.CdParada = PARADA.CdParada LEFT JOIN TB_PONTO_INTERESSE PIN ON PARADA.CdPontoInteresse = PIN.CdPontoInteresse LEFT JOIN TB_CATEGORIA_PONTO_INTERESSE CAT_PIN ON PIN.CdCategoriaPontoInteresse = CAT_PIN.CdCategoriaPontoInteresse WHERE OCORRENCIA.CdRota = @CdRota AND CAT_PIN.DsCategoriaPontoInteresse LIKE '%' + @DsCategoriaPontoInteresse + '%';", new[] { typeof(Ocorrencia), typeof(Parada), typeof(PontoInteresse), typeof(CategoriaPontoInteresse) }, objects => { Ocorrencia Ocorrencia = objects[0] as Ocorrencia; Parada Parada = objects[1] as Parada; PontoInteresse PontoInteresse = objects[2] as PontoInteresse; CategoriaPontoInteresse CategoriaPontoInteresse = objects[3] as CategoriaPontoInteresse; PontoInteresse.CategoriaPontoInteresse = CategoriaPontoInteresse; Parada.PontoInteresse = PontoInteresse; Ocorrencia.Parada = Parada; return(Ocorrencia); }, splitOn: "CdParada, CdPontoInteresse, CdCategoriaPontoInteresse", param: new { CdRota = cdRota, DsCategoriaPontoInteresse = descricaoCategoriaPontoInteresse }).AsList(); return(ocorrencias); } }