Hello
I'm using NHibernate 2.1.2.4000 and NHibernate.Validator 1.2.0.3001. I
have read this post
http://fabiomaulo.blogspot.com/2009/02/nhibernatevalidator-fluent-interface.html
but unfortunately the validation is not working as expected. Entities
with invalid values are still persisted without exception.
My configuration code looks like this:
private static readonly NHibernate.Cfg.Configuration
Configuration;
private static readonly ISessionFactory SessionFactory;
static NHibernateSessionFactory()
{
Configuration = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c =>
c.FromConnectionStringWithKey
("NavigatorConnectionString")).UseReflectionOptimizer())
// Mappings
.Mappings(m => m.FluentMappings.AddFromAssembly
(Assembly.Load("Navigator.Data")).ExportTo(@"C:\Temp"))
// Properties
.ExposeConfiguration(x => x.Properties.Add
(Environment.UseSecondLevelCache, "false"))
.ExposeConfiguration(x => x.Properties.Add
(Environment.GenerateStatistics, "true"))
.ExposeConfiguration(x => x.Properties.Add
(Environment.ShowSql, "true"))
.BuildConfiguration();
//Init NHibernate Validator
var configure = new
NHibernate.Validator.Cfg.Loquacious.FluentConfiguration();
configure
.SetDefaultValidatorMode(ValidatorMode.UseExternal)
.Register(Assembly.Load("Navigator.Validator")
.ValidationDefinitions())
.IntegrateWithNHibernate
.RegisteringListeners();
var validatorEngine = new ValidatorEngine();
validatorEngine.Configure(configure);
ValidatorInitializer.Initialize(Configuration,
validatorEngine);
SessionFactory = Configuration.BuildSessionFactory();
}
The Rules are defined like:
public class LapRules : ValidationDef<Lap>
{
public LapRules()
{
Define(x => x.Notes)
.LengthBetween(5, 50)
.WithMessage(RuleMessenger.LengthBetween("Notes", 5,
50));
}
}
After saving the Lap entity to the database, with Notes property = ab,
no exception is raised. I have used the NHibernate.Validator v 1.0
with attributes above the entity properties and exception was raised
during the persistance of invalid entity.
I have debugged the application and the Assembly.Load
("Navigator.Validator").ValidationDefinitions() returns the correct
number of *Rules classes. As well the line
ValidatorInitializer.Initialize(Configuration, validatorEngine);
correctly registers
NHibernate.Validator.Event.ValidatePreInsertEventListener to the
EventListeners.PreInsertEventListener collection.
So the question is what I'm doing wrong?
Best regards
Stephan
--
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.