I am generating schema using nhibnernate, but its not generating it is not considering the constraints:
public class Person
{
public virtual int Id { get; set; }
[NotNull]
public virtual string name { get; set; }
}
public class PersonMap : ClassMapping<Person>
{
public PersonMap()
{
Id(x => x.Id);
Property(x => x.name);
}
}
public class PersonVal : ValidationDef<Person>
{
public PersonVal()
{
Define(x => x.name).NotNullable();
}
}
I am attaching the validation to configuration as follows:
public static void SetupNHibernateValidator(Configuration config)
{
var nhvConfiguration = new FluentConfiguration();
nhvConfiguration
.SetDefaultValidatorMode(ValidatorMode.UseAttribute)
.Register(Assembly.Load("ClassLibrary2").ValidationDefinitions());
nhvConfiguration
.IntegrateWithNHibernate
.ApplyingDDLConstraints()
.RegisteringListeners();
//nhvConfiguration.Register(new [] { typeof(Person) });
nhvConfiguration.Register(new [] { typeof(PersonVal) });
ValidationEngine = new ValidatorEngine();
ValidationEngine.Configure(nhvConfiguration);
ValidatorInitializer.Initialize(config, ValidationEngine);
}
public static ISessionFactory BuildSessionFactory()
{
const string ConnectionString = @"XYZ";
_nhConfiguration = new Configuration( db =>
db.Dialect<MsSql2008Dialect>();
db.Driver<SqlClientDriver>();
db.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote;
db.IsolationLevel = IsolationLevel.ReadCommitted;
db.ConnectionString = connection;
db.Timeout = 10;);
ValidationProvider.SetupNHibernateValidator(_nhConfiguration);
var mapping = GetMappings();
_nhConfiguration.AddDeserializedMapping(mapping, "ClassLibrary2");
return _sessionFactory = _nhConfiguration.BuildSessionFactory();
}
and the output generated is:
create table Person (
Id INT not null,
name NVARCHAR(255) null,
primary key (Id)
)
what can be the problem?? the NAME field is still defined as NULL, it should have been NOT NULL.
Sorry guys, i know its too much code...
Thanks for help...
EDIT
i am using mapping by code
using NHibernate.Validator.Cfg.Loquacious;
public class PersonVal : ValidationDef<Person>
using NHibernate.Mapping.ByCode.Conformist;
public class PersonMap : ClassMapping<Person>
using NHibernate.Validator.Constraints;
public class Person
The issue was with line:
Register(Assembly.Load("ClassLibrary2").ValidationDefinitions()
I have replaced it with:
Register(Assembly.Assembly.GetExecutingAssembly().ValidationDefinitions())