2009-03-18 4 views
1

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

Я знаю, что если бы это был Foo это будет: имя класса = "mydll.Foo`1 [[mydll.Fee, MyDLL ]], MyDLL»

будет ли что-то вроде: именем класса = "mydll.Foo`1 [[mydll.Fee, MyDLL], [mydll.Fi, MyDLL]], MyDLL"(я попробовал это, но это не сработало.

ответ

0

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

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

[EDIT] Нашел: NHibernate: One base class, several mappings

0

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

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