Nhibernate验证批注未生成有效架构
我正在使用nhibnernate生成模式,但它没有生成模式,它没有考虑到以下约束: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> {
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())