+7 votos
74 visitas
Qual a diferença entre os métodos virtuais Validate() e Validating() do BusinessEntity?
por (865 pontos)
reclassificado por | 74 visitas

1 Resposta

+6 votos
Melhor resposta

Validating(), assim como o Creating(), Editing(), Saving(), Saved(), é um método virtual da BusinessEntity para implementação de regra de negócio. 

O Validating() ocorre antes de qualquer validação de dados da entidade. É análogo ao UpdateRequired da macro. É executado pelo Save() da entidade e no momento ideal para preencher valores calculados em campos obrigatórios da entidade.

Já o Validate(), que também é um método virtual, serve para efetuar validações nos dados da entidade de forma padronizada. Não deve ser utilizado para implementar  todo o tipo de regra de negócio, apenas validações no dados. É o substituto do atributo HasSelfValidation Também é executado no Save() da entidade, após o Validating().

Em resumo, ao invocar o Save() de uma entidade, os seguintes métodos virtuais (em negrito) são chamados (nestes métodos você pode implementar suas regras):

  1. Validating()
  2. [Validações Builder]
  3. Validate()
  4. Saving()
  5. [Persistência dos dados]
  6. Saved()

Dúvidas comuns:

  • Posso fazer alguma validação no Validating? Não é o local pra isso.
  • Posso fazer alguma validação no Validate? Pode sim!
  • Posso fazer alguma validação no Saving? Pode sim também!

Mas qual então a diferença do Validate e do Saving? O Validate é um método onde você implementa apenas validação e você pode chamar sem salvar a entidade, por exemplo:

   

ent.Validate()

Mais informações em:

http://wiki.benner.com.br/wiki/index.php?title=Business_Entity_Framework_-_Valida%C3%A7%C3%A3o_de_Entidades

 

por (865 pontos)
editado por

Perguntas relacionadas

+12 votos
1 resposta
perguntado 9 Mai, 2014 por paulo.silva (865 pontos) | 187 visitas
+7 votos
1 resposta
perguntado 9 Mai, 2014 por paulo.silva (865 pontos) | 72 visitas
Melhores Apr 2026
  1. IsisRickman

    5 Pontos

  2. FelipaWhippl

    5 Pontos

  3. ShelliCrabtr

    5 Pontos

  4. CeceliaWysel

    5 Pontos

  5. VernonSchaw

    5 Pontos

  6. MargieOsterh

    5 Pontos

200 pontos
Melhores 2026 Apr 06 - 12
  1. danilo.pereira

    96 Pontos

  2. danilo.pereira

    96 Pontos

  3. danilo.pereira

    96 Pontos

  4. willian.metalsystem

    69 Pontos

  5. henrique.muller

    62 Pontos

  6. luciano.fronza

    61 Pontos

  7. luciano.fronza

    61 Pontos

  8. luciano.fronza

    61 Pontos

  9. diuari.molinari

    52 Pontos

  10. diuari.molinari

    51 Pontos

518 perguntas
567 respostas
389 comentários
775 usuários