属性nhibernate中的访问策略

时间:2010-02-26 03:08:11

标签: nhibernate nhibernate-mapping

我可以在nhibernate xml的属性访问中使用哪些访问策略?
有人能指出我在其中使用的可能值吗? 非常感谢一个很好的教程 感谢

1 个答案:

答案 0 :(得分:36)

属性访问策略在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和下划线为前缀,以查找字段。