Стратегии доступа к свойствам описаны в справочной документации под 5.1.9. Свойство .
Атрибут доступа позволяет вам контролировать, как NHibernate будет обращаться к значению свойства во время выполнения. Значение атрибута доступа должно быть отформатировано в тексте как access-стратегии.naming-стратегии. Стратегия .naming не всегда требуется.
Стратегия доступа может быть одной из:
- свойство Реализация по умолчанию. NHibernate использует методы доступа get / set свойства. Стратегия именования не должна использоваться с этой стратегией доступа, поскольку значением атрибута name является имя свойства.
- поле NHibernate получит доступ к полю напрямую. NHibernate использует значение атрибута name в качестве имени поля. Если вы хотите, чтобы имя свойства, а не поле было тем, что потребители вашего API используют с HQL, тогда необходима стратегия именования.
- nosetter NHibernate получит доступ к полю непосредственно при установке значения и будет использовать свойство при получении значения. Стратегия именования необходима, потому что NHibernate использует значение атрибута name в качестве имени свойства и ему нужно указать, как называется поле.
- ClassName Если встроенные стратегии доступа NHibernate не подходят для вашей ситуации, вы можете создать свою собственную, реализовав интерфейс NHibernate.Property.IPropertyAccessor. Значением атрибута доступа должно быть полное имя сборки, которое можно загрузить с помощью Activator.CreateInstance (строка assemblyQualifiedName).
Стратегия именования может быть одной из:
- верблюд Атрибут name преобразуется в регистр верблюдов для поиска поля.
- camelcase-underscore Атрибут name преобразуется в регистр верблюдов с префиксом подчеркивания, чтобы найти поле.
- строчные буквы Атрибут имени преобразуется в нижний регистр для поиска поля.
- нижний регистр-подчеркивание Атрибут имени преобразуется в нижний регистр и префикс подчеркивания, чтобы найти поле.
- pascalcase-underscore Атрибут имени имеет префикс подчеркивания для поиска поля.
- pascalcase-m Атрибуту name предшествует символ m, чтобы найти поле
- pascalcase-m-underscore Атрибут имени имеет префикс с символом m и подчеркиванием для поиска поля.