none
DDD - excluir registro responsabilidade RRS feed

  • 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
    quarta-feira, 14 de outubro de 2009 16:46

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.

    sexta-feira, 23 de outubro de 2009 18:12
  • 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
    sexta-feira, 23 de outubro de 2009 19:04
  • 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
    sexta-feira, 23 de outubro de 2009 20:55

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.

    sexta-feira, 23 de outubro de 2009 18:12
  • 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
    sexta-feira, 23 de outubro de 2009 19:04
  • 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
    sexta-feira, 23 de outubro de 2009 20:55