2
I have the following scenario:
Public ActionResult ProdutoFornecedor01()
{
var produtos = _db.Produtos.Include(x => x.Fornecedor).OrderByDescending(x => x.ProdutoId).Where(x => x.Fornecedor.Id == 1).Take(10);
return PartialView("_PartialProdutosFornecedor01", produtos);
}
Public ActionResult ProdutoFornecedor02()
{
var produtos = _db.Produtos.Include(x => x.Fornecedor).OrderByDescending(x => x.ProdutoId).Where(x => x.Fornecedor.Id == 2).Take(10);
return PartialView("_PartialProdutosFornecedor02", produtos);
}
Public ActionResult ProdutoFornecedor03()
{
var produtos = _db.Produtos.Include(x => x.Fornecedor).OrderByDescending(x => x.ProdutoId).Where(x => x.Fornecedor.Id == 3).Take(10);
return PartialView("_PartialProdutosFornecedor03", produtos);
}
In my View
Index I call the PartialView
:
<div class="row">
@Url.Action("ProdutoFornecedor01", "Produtos")
</div>
<div class="row">
@Url.Action("ProdutoFornecedor02", "Produtos")
</div>
<div class="row">
@Url.Action("ProdutoFornecedor03", "Produtos")
</div>
According to my Hosting Plan, there are many requests in the database.
I tried to use a Cache
:
[OutputCache(Duration = 600, VaryByParam = "*")]
But the customer complained that when upgrading with a new product it takes to appear on Home.
What is the best way around this problem?
Friend, aside from the fact that you could have a generic vendor method instead of creating a method for each id, you could throw it all into memory so decreasing the amount of access to the bank, Try to allocate this data in memory and only make a request in the database if this memory is empty. If any registration occurs save and update this memory.
– Wisner Oliveira