Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

verificar se objeto é null

Olá, estou praticando asp.net com entity fazendo uma rede social. Mas estou com problemas para verificar se dois usuários já são contatos. Segue código de tentativa. Se alguém puder ajudar agradeço muito!


 public class UsuarioContatoDAO
    {
        private LeiaMaisContext context;
        public UsuarioContatoDAO(LeiaMaisContext context)
        {
            this.context = context;
        }


        public bool Verifica(int id)
        {
            var Uid = WebSecurity.CurrentUserId;
            UsuarioContato uc = context.UsuarioContatos.FirstOrDefault(u => u.Contatos.Id == id && u.Usuario.Id == Uid);
            if (uc == null)
            {
                return false;
            }
            else
            {
                return true;
            }

        }
    }
public ActionResult Perfil(int id)
        {
            ViewBag.Perfil = usuarioDao.Busca(id);
            bool verifica = ucDao.Verifica(id);
            ViewBag.VerificaContato = verifica;

            return View();
        }

Na minha minha view a ViewBag é sempre 'false' então sempre aparece o link para adicionar o usuário aos contatos novamente.

@if (ViewBag.VerificaContato)
{
    <h5>Já é um contato</h5>

}
else{
    @Html.ActionLink("Adicionar aos contatos", "Adiciona", "Contato", new { contatoId = ViewBag.Perfil.Id }, null)
}
4 respostas
solução!

Olá, Bruno!

Você precisa colocar um breakpoint nessa linha e investigar o que está acontecendo:

UsuarioContato uc = 
context.UsuarioContatos.FirstOrDefault(u => 
u.Contatos.Id == id && u.Usuario.Id == Uid);

Você também precisa fazer uma consulta no seu banco de dados pra ver se os dados realmente estão lá:

select *
from UsuarioContatos uc
inner join Usuarios u on u.Id = uc.UsuarioId
inner join Contatos c on c.Id = uc.ContatoId
where uc.UsuarioId = [Uid] && uc.ContatoId = [Id]

Ou seja, o problema pode não estar no código da sua view, mas no banco de dados.

Boa sorte e bons estudos!

Valeu Marcelo! vou dar uma olhada, mas o código não parece estar errado então?

Achei o erro Marcelo, Valeu mesmo pela ajuda. Eu realmente estava buscando errado no banco de dados.

Excelente, Bruno! Boa sorte com seu projeto de rede social!