2010-08-31 29 views
1

创建条件时,可以添加适用于属性的限制。有创建一个限制的2种方式:使用NHibernate在属性名称中没有字符串的限制

Restrictions.Eq(string propertyName, object value)

Restrictions.Eq(IProjection projection, object value)

事情是,我感觉不舒服传球属性名称为字符串,因为如果他们改变,我的项目将作为编译通常和任何可能的命名不匹配只能在单元测试期间找到。我试图实现TDD,但它不会很快发生,所以我试图限制单元测试的依赖关系来检查错误(直到我们设法接受TDD)。

任何想法? 在此先感谢!

回答

0

我能感觉到你的痛苦。

但是没有办法使用标准API中的投影来对您的属性进行动态引用,就像您不能使nHibernate映射检测到表或列名更改一样。

在大多数情况下,使用“Property”进行查找和逐步替换。

+0

是的,我也想到了,但可惜我不能真正依靠我的队友,如果你明白我的意思...... – viniciushana 2010-09-01 14:22:25

0

只要你有完整的单元测试覆盖范围(你不是吗?)它不应该是一个问题,应该:-)?

为属性名称避免使用字符串的另一个原因是使用例如重构Resharper无法修复这些引用。这正是流利的NHibernate真正闪耀的地方。

+0

流利的NHibernate只是为了映射。 OP在查询*时询问如何避免字符串* – 2010-09-01 12:26:52

相关问题