Универсальные классы отображения NHibernate - PullRequest
1 голос
/ 19 марта 2009

Как создать файл сопоставления для универсального класса в NHibernate. Скажи, у меня есть класс Foo Как бы это выглядело в картографическом документе? class name = "mydll.Foo ????, mydll" ...

Я знаю, если бы это был Фу, это было бы: class name = "mydll.Foo`1 [[mydll.Fee, mydll]], mydll"

Было бы что-то вроде: class name = "mydll.Foo`1 [[mydll.Fee, mydll], [mydll.Fi, mydll]], mydll" (я пробовал это, но это не сработало.

Ответы [ 2 ]

0 голосов
/ 19 марта 2009

Правильное отображение будет: class name = "mydll.Foo`2 [[mydll.Fee, mydll], [mydll.Fi, mydll]], mydll"

Есть два общих элемента, поэтому измените 1 на 2. Не уверен, что это допустимо для атрибута name класса, но работает для атрибута типа коллекции

0 голосов
/ 19 марта 2009

Я мог бы быть здесь над головой (только что начал делать NHibernate 3 дня назад), но имеет ли это значение для отображения абстрактного класса? Вы не можете создать экземпляр абстрактного класса, так почему бы вам сопоставить его с данными?

Мое лучшее предположение состоит в том, что вы должны сопоставить свои подклассы с данными, которые им нужны, и сделать общедоступными / защищенными установщиками своего базового класса, чтобы сопоставить их тоже. Это могло бы означать много вставок при копировании, поскольку ваш базовый класс был бы отображен одинаково для всех (в идеальном мире) подклассов.

[РЕДАКТИРОВАТЬ] Найдено: NHibernate: один базовый класс, несколько сопоставлений

...