Nhibernate验证批注未生成有效架构

Nhibernate验证批注未生成有效架构,nhibernate,nhibernate-validator,Nhibernate,Nhibernate Validator,我正在使用nhibnernate生成模式,但它没有生成模式,它没有考虑到以下约束: public class Person { public virtual int Id { get; set; } [NotNull] public virtual string name { get; set; } } public class PersonMap : ClassMapping<Person> {

我正在使用nhibnernate生成模式,但它没有生成模式,它没有考虑到以下约束:

 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();
        }
    }
有什么问题吗?? 名称字段仍然定义为NULL,它应该不是NULL

对不起,伙计们,我知道代码太多了

谢谢你的帮助

编辑

我正在使用代码映射

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
使用NHibernate.Validator.Cfg.Loquacious;
公共类PersonVal:ValidationDef
使用NHibernate.Mapping.ByCode.Conformist;
公共类PersonMap:类映射
使用NHibernate.Validator.Constraints;
公共阶层人士

问题在于行:

Register(Assembly.Load("ClassLibrary2").ValidationDefinitions()
我已将其替换为:

Register(Assembly.Assembly.GetExecutingAssembly().ValidationDefinitions())

Person的映射不应该具有属性(x=>x.name).Not.Null()?(不记得这是正确的语法)因为这个流畅的映射是生成HBM文件的原因…我用NHibernate.Mapping.ByCode.Conformistconformist不知道验证属性,不会把它们当作信息源。您必须编写查找属性和添加自定义映射选项的约定#@Firo您能详细说明一下吗。。举个例子?我更习惯于FluentNHibernate,这里的约定看起来像
classnotnullconvention:AttributeConvention{public void Apply(…instance){instance.Not.Null();}}
Register(Assembly.Load("ClassLibrary2").ValidationDefinitions()
Register(Assembly.Assembly.GetExecutingAssembly().ValidationDefinitions())