Usuário com melhor resposta
DDD - excluir registro responsabilidade

Pergunta
-
Srs,.
eu tenho um cadastro de cliente com um cadastro de contas a receber, usando DDD quando eu vou excluir um cliente de quem é a responsabilidade de verificar se o cliente tem lançamentos no contas a receber e cancelar a exclusão? do Domínio o do Repositório?
Att,
Luciano Mattos
Respostas
-
Luciano,
A responsabilidade do repositório é apenas recuperar dados e retornar coleções. Portanto, não pode ser responsabilidade dele cancelar e nem excluir nada.
Você deve usar um objeto de domínio responsável por essa regra.- Sugerido como Resposta Bruno Gallego quarta-feira, 11 de novembro de 2009 10:24
- Marcado como Resposta Wagner dos Santos VasconcellosModerator terça-feira, 29 de março de 2011 11:10
-
Cara, acredito que se voce tiver feito o relacionamento entre as tabelas direitinho (no meu caso utilizo SQL to linq pra fazer isso) a camada que faz a persistencia dos dados já te retorna uma exceção caso voce tentar deletar um registro de uma tabela pai, sendo que existe um registro referenciado na tabela filha. Aí é só tratar a exceção....
Abraços
Rafael- Marcado como Resposta Wagner dos Santos VasconcellosModerator terça-feira, 29 de março de 2011 11:09
-
Luciano,
Recomendo você dar uma olhada no artigo abaixo, veja se realmente existe a necessidade de se excluir fisicamente o registro do banco de dados.
http://www.infoq.com/br/news/2009/09/Do-Not-Delete-Data.
Se realmente você precisar da exclusão física você vai precisar de um processo (de domínio) para realizar essa ação, eu acredito que o seu cliente estará relacionado com várias outras entidades do seu sistema, ai nesse caso o seu processo ficará responsável em verificar se é possível ou não realizar a exclusão para dai sim o repositório somente excluir.
Abraços,
Eduardo Silva
http://eduardodotnet.blogspot.com- Marcado como Resposta Wagner dos Santos VasconcellosModerator terça-feira, 29 de março de 2011 11:09
Todas as Respostas
-
Luciano,
A responsabilidade do repositório é apenas recuperar dados e retornar coleções. Portanto, não pode ser responsabilidade dele cancelar e nem excluir nada.
Você deve usar um objeto de domínio responsável por essa regra.- Sugerido como Resposta Bruno Gallego quarta-feira, 11 de novembro de 2009 10:24
- Marcado como Resposta Wagner dos Santos VasconcellosModerator terça-feira, 29 de março de 2011 11:10
-
Cara, acredito que se voce tiver feito o relacionamento entre as tabelas direitinho (no meu caso utilizo SQL to linq pra fazer isso) a camada que faz a persistencia dos dados já te retorna uma exceção caso voce tentar deletar um registro de uma tabela pai, sendo que existe um registro referenciado na tabela filha. Aí é só tratar a exceção....
Abraços
Rafael- Marcado como Resposta Wagner dos Santos VasconcellosModerator terça-feira, 29 de março de 2011 11:09
-
Luciano,
Recomendo você dar uma olhada no artigo abaixo, veja se realmente existe a necessidade de se excluir fisicamente o registro do banco de dados.
http://www.infoq.com/br/news/2009/09/Do-Not-Delete-Data.
Se realmente você precisar da exclusão física você vai precisar de um processo (de domínio) para realizar essa ação, eu acredito que o seu cliente estará relacionado com várias outras entidades do seu sistema, ai nesse caso o seu processo ficará responsável em verificar se é possível ou não realizar a exclusão para dai sim o repositório somente excluir.
Abraços,
Eduardo Silva
http://eduardodotnet.blogspot.com- Marcado como Resposta Wagner dos Santos VasconcellosModerator terça-feira, 29 de março de 2011 11:09