Olá, bom dia!!!
Estou fazendo as atividades do "Cadastro de entidades no projeto WEB". Não estou conseguindo criar e usar uma única ISession para toda a loja. Até o momento fiz o seguinte:
- No HomeControler, criei a ISession:
public class HomeController : Controller
{
public ISession session;
public ActionResult Index()
{
session = AbreSession();
return View();
}
public ISession AbreSession()
{
ISession session = NHibernateHelper.AbreSession();
return session;
}
}
- No ProdutosDAO, fiz o método adiciona, que usa a Session informado na instanciação da classe:
private ISession session;
public ProdutosDAO(ISession session)
{
this.session = session;
}
public void Adiciona(Produto produto)
{
ITransaction transaction = session.BeginTransaction();
session.Save(produto);
transaction.Commit();
}
- E quando vou adicionar o produto, na classe ProdutosController, não consigo passar o session do HomeController (HomeController.session), ocorrendo erro de compilação .
public ActionResult Adiciona(Produto produto)
{
ProdutosDAO produtoDAO = new ProdutosDAO(HomeController.session);//erro nessa linha
produtoDAO.Adiciona(produto);
return RedirectToAction("Index");
}
Eu até poderia alterar para não precisar passar a Session criada no HomeController, porém de qualquer forma, preciso ter acesso a ela. Enfim, aguardo sugestões para correção de meu problema.
Atenciosamente.