none
Transações EF 4.1 Poco e camadas RRS feed

  • Pergunta

  • Boa noite pessoal!

    Estou trabalhando no desenvolvimento de uma aplicação onde estamos utilizando o EF 4.1 e o padrão de três camadas, ou seja, temos uma camada de apresentação, uma de negócio e outro de DAL que efetivamente implementa as chamadas para a minha base de dados. 

    Chegou uma situação aqui bem interessante que queria saber qual a solução para o problema. Tenho uma operação que evolve duas inclusões em entidade diferentes, primeiro realizado a inclusão de uma conta e depois já crio um usuário relacionado com aquela conta para servir de usuário "suporte". O problema é que quero que caso ocorra algum erro na inclusão do usuário a conta não seja criada também.

    Bem até aqui nade de diferente do cotidiano se eu não quiser fazer isso a partir da minha camada de negócio. Também porque fazer esta operação a partir da cama de negócio? Entendo eu que camada de dados seja para operações com banco e camada de negócio para tratar das minhas regras pertinentes a aplicação. Daí então vem a necessidade de realizar esta operação via a camada de negócio, porque saber que uma conta tem que ser incluída juntamente com um usuário é responsabilidade de minha regra e não do meu banco, estou errado?

    Então temos um projeto de DAL e outro BS (Bussiness Service), deste processo de BS eu preciso chamar um ContaDAL.Incluir(), guardar a transação iniciada aqui e depois chamar uma UsuarioDAL.Incluir() passando esta mesma transação e após finalizar a inclusão do usuário finalizar esta transação.

    Alguém sabe fazer isso? Controlar a transação da camada negócio permitindo a chamada para outra camada sem perder a transação?

    Obrigado!

    quarta-feira, 7 de março de 2012 03:10

Respostas