2010-11-10 52 views

回答

2

看看NHibernate.Validator。

该系统允许您通过属性或XML为实体添加限制。这些信息稍后可以在您的界面中检索和使用。

一些阅读材料:

+0

谢谢,我会在有机会的时候阅读这些内容。我不知所措! – 2010-11-11 01:35:33

+0

不客气。 – 2010-11-11 06:02:42

+0

这可能是一个很好的答案,但不幸的是,这些链接已停止工作,所以现在不可能知道。 – Markus 2015-11-27 08:24:12

2

我不知道这是否可能使用NHibernate。据我所知,NHibernate可以用来创建数据库,但它不能从数据库读取表属性。换句话说,它会假设表按照您在映射中声明它们的方式进行设置,然后在出现问题时发出抱怨。由于Pieter已经说过,您可以使用NHibernate Validator来对您的模型实施约束。如果底层数据库发生变化,您仍然需要手动更改约束。

+0

不是我想听的,但如果你是对的,至少你会救我找一个不存在的解决方案的小时的麻烦! – 2010-11-11 01:32:53

2

使用T4 template从表模式读取长度并自动注入映射或NHibernate验证器。

这是一点点工作,但如果您担心DBA经常改变架构,这是要走的路。

或者,如果工作量太大,可以编写单元测试,将模式中的长度与映射的长度进行比较。如果DBA更新模式但映射未正确更新,这些将会中断。然后,当你的单元测试中断时,你知道要更改代码。

+0

告诉dba不要干涉长度可能不太方便。我会给它一个阅读虽然。谢谢! – 2010-11-11 01:34:50