Tabela retornando vallores repeditos

23/12/2014

0

Olá galera, possuo uma action retornando os dados de uma tabela, porém os dados estão retornando duplicados. E cada atualização na página eles mudam( porém repetido).

Ex: [img:descricao=Tabela]http://arquivo.devmedia.com.br/forum/imagem/397347-20141223-152221.png[/img]

Ai quando eu atualizo o navegador, os dados mudam, porém vêm repetido da mesma forma. Sempre retornando os mesmos dados, repetidos, a cada refresh.

Segue meu método, mas analisarem.

UsuarioController:

 public ActionResult Dependente()
        {
            var dependentes = dependenteRepository.Lista.Where(x => x.slogin == autenticacaoProvider.UsuarioAutenticado.Login);
            return View(dependentes);
        }



Método Lista:
public IQueryable<Entities.Dependente> Lista
        {
            get { return context.Dependentes.AsQueryable(); }
        }




Se alguém puder me ajudar, eu agradeço.
Randrade

Randrade

Responder

Post mais votado

07/01/2015

Ah, então achamos o problema.
Auto-incremento em view, não dá. Mas talvez fosse possa usar a função ROW_NUMBER do SQL Server para trazer uma coluna com números sequenciais.
Mas de toda forma, reveja esse seu filtro, pois não deveria ser necessário complicar tanto assim para fazer uma simples consulta. Reveja a estrutura da sua view.

Joel Rodrigues

Joel Rodrigues
Responder

Mais Posts

23/12/2014

Randrade

Desculpe a escrita to título, estava com pressa ao digitar... kkkk
Responder

23/12/2014

Soeuseijothaz

Ih camarada, beleza?

Qual a estrutura da tabela Dependentes?
Responder

23/12/2014

Randrade

Beleza sim brother.

Bom, segue uma imagem, pois estou sem acesso a aplicação neste momento.

[img]http://arquivo.devmedia.com.br/forum/imagem/397347-20141223-165334.png[/img]



Neste caso, ao invés de fazer uma busca pelo ID do usuário logado, eu estou realizando a busca pelo login, pois não terá 2 logins semelhantes.
Responder

26/12/2014

Joel Rodrigues

Como está sua view?
Responder

29/12/2014

Randrade

Segue o código da view, como você pediu Joel:

@model IEnumerable<PortalRH.DomainModel.Entities.Dependente>

@{
    ViewBag.Title = "Dependente";
}

<h2>Dependentes</h2>
<hr/>
<div class=" table">
    <table>
        <tr>
            <th>
                Nome
            </th>
            <td>
            <th>
                Grau de Dependência
            </th>
            <td>
            <th>
                CPF
            </th>

        </tr>

        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @item.Nome_dependente
                </td>
                <td></td><td></td><td></td><td></td>
                <td>
                    @item.DsGrauDependencia
                </td>
                <td></td><td></td><td></td><td></td>
                <td>
                    @item.NRCPF
                </td>
            </tr>
        }

    </table>
</div>



No Debug, eu vejo que ele está fazendo o foreach corretamente, e me retorna a quantidade exata que é para retornar. Porém a cada "loop", os valores não mudam.

Resumindo, me traz a quantidade correta, porém com os valores repetidos.
Responder

29/12/2014

Joel Rodrigues

Na action Dependente, coloque um breakpoint na linha onde está o return e veja se a variável dependentes está contendo os itens corretos.
Responder

29/12/2014

Randrade

Já havia feito isto.

Ela está percorrendo a quantidade de vezes correta( quantidade de dados cadastrados), porém o valor dos campos continuam o mesmo.

Exemplo: Possuo na tabela 3 dados, Joao, Maria e Antonio.
Ele percorre a tabela 3x e me trás (Joao, Joao, Joao), ai eu dou um reflesh no navegador, e vem (Maria, Maria, Maria) e a cada reflesh, altera o valor, ams sempre os mesmos.
Responder

30/12/2014

Randrade

Ai galera, ainda estou com o mesmo problema, alguém saberia como resolver?
Responder

30/12/2014

Joel Rodrigues

Temos que identificar a origem do erro. Nesta linha abaixo, a variável dependentes contém os itens corretos, ou já aí ela contém os itens repetidos?
var dependentes = dependenteRepository.Lista.Where(x => x.slogin == autenticacaoProvider.UsuarioAutenticado.Login);
Responder

05/01/2015

Randrade

Joel, ao debugar, nesta linha, especificamente, eu só consigo ver a consulta em si.

Mas colocanco um breakponint ai, na view eu consigo ver os dados.

Ele faz o foreach, a quantidade de vezes dos dados existentes corretamente, porém me retorna apenas o mesmo repetido. tanto no debug ou na página em si.
Responder

05/01/2015

Randrade

Tentei usando Contains, porém continua a mesma coisa;

 public ActionResult Dependente()
        {
            var dependentes = dependenteRepository.Lista.Where(x => x.slogin.Contains( autenticacaoProvider.UsuarioAutenticado.Login)).ToList();
            return View(dependentes);
            
        }




Estou usando um IQueryable para retornar os dados. Está correto isto mesmo?

Estou buscando em vários sites, porém não estou conseguindo achar a solução.
Responder

07/01/2015

Joel Rodrigues

A questão é saber se essa lista de dependentes está sendo preenchida corretamente, e o problema está entre esse ponto e a view, ou se essa consulta aí já está retornando os valores duplicados, entende?
Tente colocar, antes do return, algo como Console.Write, ou dar um Quick Watch nessa variável para ver os itens dela.
Responder

07/01/2015

Randrade

Usei o Console Write aqui.

Colocando para imprimir os dados, mostra todos repetidos. Porém coloquei um .Count, e me retornou o valor correto.
Pelo jeito, o problema está no meu método.
Poderia ser eu buscar por Login e não por ID?
Responder

07/01/2015

Randrade

Eu acho que encontrei o problema, mas não a solução!

Eu estou trabalhando com uma view, e nela não possui uma coluna unica( Chave Primária).
Para a utilização do EF, eu tive que colocar a chave primária "CDPESSOA" que é da tabela Usuário como chave primária.

Existe alguma forma de adicionar algum campo autoencremente na view, ou algo do tipo?
Responder

08/01/2015

Randrade

Vou verificar aqui. Assim que concluir, posto a solução.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar