Стратегии доступа к свойствам в nhibernate
Какие стратегии доступа я могу использовать при доступе к атрибутам nhibernate xml?
Может кто-нибудь указать мне возможные значения, которые будут использоваться в нем?
Хороший учебник будет очень признателен.
Спасибо
1 ответ
Решение
Стратегии доступа к свойствам описаны в справочной документации по 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).
Стратегия именования может быть одной из:
- camelcase Атрибут имени преобразуется в регистр верблюда, чтобы найти поле.
- camelcase-underscore Атрибут name преобразуется в регистр верблюдов с префиксом подчеркивания, чтобы найти поле.
- нижний регистр Атрибут имени преобразуется в нижний регистр для поиска поля.
- нижний регистр-подчеркивание Атрибут имени преобразуется в нижний регистр и с префиксом подчеркивания, чтобы найти поле.
- pascalcase-underscore Атрибут name имеет префикс подчеркивания, чтобы найти поле.
- pascalcase-m Атрибут имени имеет префикс с символом m, чтобы найти поле
- pascalcase-m-underscore Атрибут name начинается с символа m и подчеркивания, чтобы найти поле.