Inserindo em várias tabelas
Li em um livro que uma boa maneira de organizar a camada DAL seria criar um CS para cada tabela do banco de dados.
Acontece que estou fazendo uns testes desenvolvendo um sistema de Agenda, onde tenho as tabelas Contato, fone e email.
Quando insiro um contato ele me retorna o seu ID que será utilizado nas tabelas fone e email.
O método que inseri o contato fica da seguinte maneira:
Instancio o SqlConnection
Instancio o sqlTransaction
Realizo a inserção na tabela Contato que me retorna o ID
com o ID insiro os dados na tabela fone
com o ID insiro os dados na tabela email
Se tudo tiver OK dou commit no Transaction e encerro a conexão
Tudo isso em um único método, que acaba ficando gigante. Tentei organizar a DAL da maneira que li no livro que citei acima, mas eu tinha que ficar abrindo e fechando a conexão e o transaction para cada tabela, o que não está correto pois quando ocorre algum problema na tabela que esta sendo realizada a inserção o rollback é dado somente nela e os registros são inseridos nas demais tabelas.
Dei toda essa explicação para perguntar. Qual a melhor maneira de modelar a DAL?
Discussão (4)
Carregando comentários...