How to List Products from a Single MVC Distributor

1

I have an application that manages the Distributor and its Products. I want to list only the products of the Distributor that I have selected, but in the case everything is appearing.

I tried to do this:

public ActionResult ListarProdutosDistribuidoras(int? id)
{    
    if (id == null)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
    Produto produto = db.Produtos.Find(id);
    if (produto == null)
    {
        return HttpNotFound();
    }

    var produtos = db.Produtos.Include(p => p.Pessoa.PessoaID);
    return View(produtos.ToList());
}
    
asked by anonymous 28.04.2016 / 20:18

1 answer

0

I suppose your Model Produto looks something like this:

public class Produto
{
    [Key]
    public int ProdutoId { get; set; }
    public int DistribuidoraId { get; set; }

    ...

    public virtual Distribuidora Distribuidora { get; set; }
}

I also assume that your Action receives a DistribuidoraId as a parameter:

public ActionResult ListarProdutosDistribuidoras(int? id)
{
    if (id == null)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }

    var idNaoNulo = (int)id; // Você já conferiu se é nulo, então posso fazer isso.
    var distribuidora = db.Distribuidoras.FirstOrDefault(d => d.DistribuidoraId == idNaoNulo);
    // Produto produto = db.Produtos.Find(id);

    if (distruibuidora == null)
    {
        return HttpNotFound();
    }

    // Não entendi isso aqui. Acho que falta entendimento sobre o Include.
    // var produtos = db.Produtos.Include(p => p.Pessoa.PessoaID);
    var produtos = db.Produtos.Where(p => p.DistribuidoraId == idNaoNulo);
    return View(produtos.ToList());
}
    
28.04.2016 / 23:52