How to List Products from One MVC Distributor

Asked

Viewed 96 times

1

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

I tried to do so:

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());
}
  • the distributor is primary key?

  • Opa, yes the distributor is primary key.

  • the code is cloudy, what would be this id that it receives as parameter and which field is the distributor ai? Person would be the distributor?

  • Does the product have the code of the distributor in which it belongs? Post the Models Product and Distributor, to see how the relationship is.

1 answer

0

I suppose your Model Produto be something like that:

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

    ...

    public virtual Distribuidora Distribuidora { get; set; }
}

I also suppose that your Action receive 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());
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.