我已经创建了一个新的1.6 Sharp Architecture项目。Sharp Architecture Repository中的实体验证
我用HasUniqueDomainSignatureAttribute和一个标记为DomainSignatureAttribute的字符串属性标记了我唯一的实体。
我创建了2个具有相同DomainSignature的实体,我可以保存它们都有重复。
我是否缺少一些配置?正如我的印象是,这可以开箱即用。
我已经创建了一个新的1.6 Sharp Architecture项目。Sharp Architecture Repository中的实体验证
我用HasUniqueDomainSignatureAttribute和一个标记为DomainSignatureAttribute的字符串属性标记了我唯一的实体。
我创建了2个具有相同DomainSignature的实体,我可以保存它们都有重复。
我是否缺少一些配置?正如我的印象是,这可以开箱即用。
保存之前,您应手动检查实体的有效性。我不知道现在是怎么做的,但在previos版本中,每个实体都有一个属性IsValid。
好的,验证方法IsValid()在实体上。
但从文档中我得到的印象是,如果使用NHibernate和NHibernate.Validators,存储库应该在插入和更新之前验证实体。 As in the documentation on nhforge.org
在SharpArch.Data.NHibernate.NHibernateSession下面的代码段在每次使用Init()时被调用。
这些事让我想知道为什么它不起作用。
我可以推出自己的产品,但是如果它已经存在的话,那看起来很浪费。
任何人都可以指向正确的方向吗?此外,SchemaExport util应该在生成脚本时使用验证器。
NHibernateSession.Init有很多重载,其中之一是将一个字符串接入验证器配置文件的路径。你需要创建这个配置文件,并像你做NHibernate.config一样传递它。接线就可以工作。 – Alec 2010-08-31 19:57:00
谢谢亚历克!我发现,但是由于NHValidator文档中的错误,我的NHValidator.config文件中有一个错误。哎呀。 也许“尖锐拱门”维基应该包含一些关于此问题的词语?我会很乐意去做! – HAXEN 2010-09-01 06:40:51