2010-08-30 47 views
0

我已经创建了一个新的1.6 Sharp Architecture项目。Sharp Architecture Repository中的实体验证

我用HasUniqueDomainSignatureAttribute和一个标记为DomainSignatureAttribute的字符串属性标记了我唯一的实体。

我创建了2个具有相同DomainSignature的实体,我可以保存它们都有重复。

我是否缺少一些配置?正如我的印象是,这可以开箱即用。

回答

0

保存之前,您应手动检查实体的有效性。我不知道现在是怎么做的,但在previos版本中,每个实体都有一个属性IsValid。

0

好的,验证方法IsValid()在实体上。

但从文档中我得到的印象是,如果使用NHibernate和NHibernate.Validators,存储库应该在插入和更新之前验证实体。 As in the documentation on nhforge.org

在SharpArch.Data.NHibernate.NHibernateSession下面的代码段在每次使用Init()时被调用。 Codes nippet from type HNibernateSession

这些事让我想知道为什么它不起作用。

我可以推出自己的产品,但是如果它已经存在的话,那看起来很浪费。

任何人都可以指向正确的方向吗?此外,SchemaExport util应该在生成脚本时使用验证器。

+0

NHibernateSession.Init有很多重载,其中之一是将一个字符串接入验证器配置文件的路径。你需要创建这个配置文件,并像你做NHibernate.config一样传递它。接线就可以工作。 – Alec 2010-08-31 19:57:00

+0

谢谢亚历克!我发现,但是由于NHValidator文档中的错误,我的NHValidator.config文件中有一个错误。哎呀。 也许“尖锐拱门”维基应该包含一些关于此问题的词语?我会很乐意去做! – HAXEN 2010-09-01 06:40:51