属性访问策略在5.1.9. Property下的参考文档中进行了描述。
使用access属性可以控制NHibernate在运行时访问属性值的方式。 access属性的值应该是文本格式为access-strategy.naming-strategy。 .naming策略并不总是必需的。
访问策略可以是以下之一:
- 属性默认实现。 NHibernate使用属性的get / set访问器。此访问策略不应使用命名策略,因为name属性的值是属性的名称。
- 字段 NHibernate将直接访问该字段。 NHibernate使用name属性的值作为字段的名称。如果您希望该属性的名称而不是该字段是您的API使用者与HQL一起使用的,那么就需要一个命名策略。
- nosetter NHibernate将在设置值时直接访问该字段,并在获取值时使用该属性。命名策略是必需的,因为NHibernate使用name属性的值作为属性名称,需要告诉该字段的名称是什么。
- ClassName 如果NHibernate的内置访问策略不适合您的情况,那么您可以通过实现NHibernate.Property.IPropertyAccessor接口来构建自己的访问策略。 access属性的值应该是可以使用Activator.CreateInstance(string assemblyQualifiedName)加载的程序集限定名称。
命名策略可以是以下之一:
- camelcase 将name属性转换为驼峰大小写以查找该字段。
- camelcase-underscore name属性转换为驼峰大小写,并以下划线为前缀以查找字段。
- 小写将name属性转换为小写以查找Field。
- 小写 - 下划线将name属性转换为小写,并以下划线为前缀以查找Field。
- pascalcase-underscore name属性以下划线为前缀以查找字段。
- pascalcase -m name属性以字符m为前缀以查找字段
- pascalcase-m-underscore name属性以字符m和下划线为前缀,以查找字段。