добавить отображение nHibernate во время выполнения? - PullRequest
4 голосов
/ 31 марта 2009

Справочная информация:

При попытке использовать nHibernate у меня возникает ошибка сопоставления. Приложение состоит из нескольких сборок. Одна из сборок - это библиотека полезных подпрограмм, а другая - код приложения, который использует библиотеку. Сборка библиотеки добавляет себя в конфигурацию nHibernate, но, поскольку она не знает о других сборках, она не добавляет их. Мой файл сопоставления xml находится в сборке приложения. Я думаю, что он не находит его, потому что он не ищет в сборке приложения.

Вопрос: Можно ли сопоставить классу произвольную сборку, не добавляя его в конфигурацию?

Если нет, можете ли вы добавить отображение во время выполнения?

Спасибо

p.s. Я убедился, что файл сопоставления был помечен как встроенный ресурс


Обновление - 3 апреля 2009 г.

Я изменил базовую библиотеку, чтобы разрешить добавление сборок при инициализации. Это, кажется, работает просто замечательно.

Ответы [ 2 ]

8 голосов
/ 31 марта 2009

Вы можете добавить сопоставления во время выполнения в момент создания фабрики сеансов:

ISessionFactory sf = new Configuration()
    .AddFile("Item.hbm.xml")
    .AddFile("Bid.hbm.xml")
    .BuildSessionFactory();

или со сборками:

ISessionFactory sf = new Configuration()
    .AddAssembly("NHibernate.Auction")
    .BuildSessionFactory();
3 голосов
/ 01 апреля 2009

Ваш комментарий - нет, вы не можете добавлять сопоставления после создания фабрики сессий. Однако вы можете заново создать фабрику сеансов. Имейте в виду, однако, что это может быть дорогая операция (секунда или около того).

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