стратегии свойства Access в nhibernate

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

18
задан Lachlan Roche 26 February 2010 в 05:42
поделиться

1 ответ

Стратегии доступа к свойствам описаны в справочной документации в разделе 5.1.9. Свойство .

Атрибут доступа позволяет вам контролировать, как NHibernate будет получать доступ к значению свойства во время выполнения. Значение атрибута доступа должно иметь текстовый формат как access-strategy.naming-strategy. Стратегия .naming требуется не всегда.

Стратегия доступа может быть одной из:

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

Стратегия именования может быть одной из:

  • camelcase Атрибут name преобразуется в регистр верблюда для поиска поля.
  • camelcase-underscore Атрибут name преобразуется в регистр верблюда и имеет префикс подчеркивания для поиска поля.
  • нижний регистр Атрибут имени преобразуется в нижний регистр для поиска поля.
  • lowercase-underscore Атрибут name преобразуется в нижний регистр и имеет префикс подчеркивания для поиска поля.
  • pascalcase-underscore Атрибут name имеет префикс подчеркивания для поиска поля.
  • pascalcase-m Атрибут имени имеет префикс с символом m для поиска поля
  • pascalcase-m-underscore Атрибут имени имеет префикс с символом m и подчеркиванием для поиска поля.
36
ответ дан 30 November 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: