NHibernate не раскрывает столбцы в Set CollectionMappings - PullRequest
2 голосов
/ 02 декабря 2008

Мы находимся в процессе написания кода для генерации проверочных ограничений со всеми допустимыми значениями из наших отображений перечисления. Некоторые из наших перечислений находятся внутри составных элементов через сопоставленные наборы наборов (см. Ниже):

<set name="Addresses" table="[Addresses$]" access="field.camelcase-underscore">
    <key column="Person" />
    <composite-element class="Address">
        <property name="StreetAddress1" column="[Street Address 1]" />
        <property name="Country" type="Import.DataAccess.Mappings.UserTypes.EnumerationDisplayNameType`1[[Core.Domain.Model.Enumerations.Country, Core]], Import" />
        <property name="State"  type="Import.DataAccess.Mappings.UserTypes.EnumerationDisplayNameType`1[[Core.Domain.Model.Enumerations.State, Core]], Import" />
        <property name="ZipCode" column="[Zip Code]" length="10" />
    </composite-element>
</set>

Мы можем успешно получить все допустимые значения для конкретного перечисления, используя отражение, когда перечисления просто отображаются как свойства или внутри компонентов. Мы делаем это, получая NHibernate.Mapping.Table и перебирая столбцы в поисках нашего типа перечисления. Наша проблема с типами коллекций. Счетчик ColumnsIterator всегда равен нулю для типов коллекции.

Удалось ли кому-либо получить информацию о столбцах из сопоставленных наборов (которые являются объектами значений, если это вообще имеет значение) в коде?

Не уверен, что понятно, что мы пытаемся сделать. Дайте мне знать, если нужно больше информации, чтобы лучше понять проблему.

1 Ответ

1 голос
/ 28 октября 2012

[первоначально отвечал ОП] : Оказывается, мы искали решение не в том месте. Первоначально мы использовали только Configuration.ClassMappings и Configuration.CollectionMappings, и, как указывалось в моих исходных комментариях, столбцы не отображались в CollectionMappings.

Мы добились успеха (и перечислений, которые мы хотели), когда работали через PropertyIterator каждого ClassMapping и получали информацию о перечислении по-разному в зависимости от того, было ли свойство коллекцией или компонентом, поскольку существует несколько способов сопоставления вещей с использованием компонентов, это была безусловно самая сложная часть. Я хотел бы более подробно рассказать о нашем решении. Я постараюсь опубликовать ссылку, если / когда это произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...