Можно ли дать фабрике сеансов nhibernate список отображений для загрузки? - PullRequest
1 голос
/ 27 июля 2011

Прямо сейчас фабрика сессий просто находит все файлы .hbm.xml, встроенные в текущую сборку, как кажется.Теперь у меня есть ситуация, когда я хочу, чтобы фабрика сеансов загружала только список отображений, которые я указываю.Как я могу это сделать?

Спасибо,

Исаак

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Вы можете использовать Configuration.AddResources(IEnumerable<string> paths, Assembly assembly) и указать желаемый список сопоставлений, выполнить собственную фильтрацию, если вы настаиваете на том, чтобы сопоставления были встроены в одну сборку. В противном случае я бы порекомендовал ответ Серхио.

Вы можете использовать статический метод в классе Configuration для возврата списка доступных сопоставлений в сборке, затем вы можете удалить те, которые вам не нужны:

var mappings = Configuration.GetAllHbmXmlResourceNames(assembly);
// TODO: filter mappings
cfg.AddResources(mappingsFiltered, assembly);
1 голос
/ 27 июля 2011

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

Еще один способ сделать это во время выполнения - использовать метод NHibernate.cfg.Configuration.CreateMappings для динамического создания отображений. Это потребует от вас создания отображений на лету (вы можете читать из БД или файлов или чего-то еще). Лично я так не поступил, но, думаю, вы могли бы попытаться решить ваши потребности.

Надеюсь, это поможет.

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