Как установить схему базы данных для пространства имен в nhibernate - PullRequest
0 голосов
/ 01 июля 2010

У меня есть база данных с несколькими схемами: безопасность, торговля и т. Д. Каждая схема имеет несколько таблиц. То есть. Схема безопасности имеет: Пользователи, Роли и т. Д.

Теперь я могу настроить nhibernate так, чтобы схема привязывалась к пространству имен. То есть. У меня есть пространство имен безопасности в моем проекте с POCO User и Role. Поэтому я не буду устанавливать схему привязки базы данных в пространстве имен. Я знаю, что могу добавить схему в файл отображения для каждого класса, но если у меня есть, т.е. 1000 класс я должен указать схему для каждого класса.

Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 13 сентября 2010

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

var cfg = new Configuration().Configure();
foreach (var pc in cfg.ClassMappings)
{//just an example
     pc.Table.Schema = pc.MappedClass.Assembly.GetName().FullName.Substring(0, 3);
}
var sessionFactory = cfg.BuildSessionFactory();

обратите внимание, что обычно вы создаете фабрику сеансов только один раз, поэтому влияние на производительность (если есть) происходит только один раз.

0 голосов
/ 02 июля 2010

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

...