Стратегии доступа к свойствам в nhibernate - PullRequest
18 голосов
/ 26 февраля 2010

Какие стратегии доступа я могу использовать в атрибуте доступа к nhibernate xml?
Может кто-нибудь указать мне возможные значения, которые будут использоваться в нем?
Очень понравился бы хороший учебник.
Спасибо

1 Ответ

36 голосов
/ 26 февраля 2010

Стратегии доступа к свойствам описаны в справочной документации под 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 и подчеркиванием для поиска поля.
...