If you need to validate in some other point you can implements others
listeners but, in general, the validation happen in some other high-level.
2009/6/17 Gary Brunton <[email protected]>
>
> I just started looking into NHibernate.Validator and love the
> integration it has with NHibernate. I do have a question though.
>
> I see many examples of how to perform validation using NHV on a newly
> created entity like so:
>
> Customer customer = new Customer();
> ...
> customer.Phone = "343-343-343"; //INVALID VALUE
> customer.Zip = "34334"; //INVALID VALUE
>
> ValidatorEngine validator = new ValidatorEngine();
>
> if (validator.IsValid(customer))
> {
> repo.Save(customer);
> }
>
>
> But I can't find an example of performing validation on an entity
> retrieved from a repository and then updated. ex:
>
> Customer customer = repo.Get(1);
> ...
> customer.Phone = "343-343-343"; //INVALID VALUE
>
> foreach (InvalidValue error in validatorEngine.Validate(customer))
> {
> // display the errors...
> }
>
> from here I can retrieve the validation errors no problem but the
> customer entity is now dirty and my unit of work will try to flush/
> commit the changes which causes an InvalidStateException. I don't
> want to handle this exception here as it is assumed I've already
> realized the entity is invalid and handled the validation errors as
> desired.
>
> Now from here I see a couple of options that I don't like:
> 1. I could swallow all InvalidStateExceptions
> 2. I could set some global error state when a validation error has
> been found by the validation engine and then always check this global
> error state before flushing/committing within my UOW.
>
> Am I missing something here?
>
> Any insight would be greatly appreciated. Thanks!
>
> Gary Brunton
>
> >
>
--
Fabio Maulo
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---