我有一个包含多个模式的数据库:安全,贸易等 每个shema都有多个表。 IE浏览器。安全架构有:用户,角色等..
现在,我可以设置nhibernate,以便将模式绑定到命名空间。 IE浏览器。我的项目中有一个安全命名空间,其中包含用户和角色POCO。 所以我不会将绑定数据库模式设置为命名空间。 我知道我可以在每个类的maping文件中添加Schema,但是如果我有ie。 1000类我必须为每个clas指定模式。
请帮忙。
答案 0 :(得分:2)
您可以在创建sessionfactory之前以编程方式执行您想要的操作:
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();
请注意,通常您只会构建一次会话工厂,因此性能影响(如果有)仅发生一次。
答案 1 :(得分:0)
NHibernate不会神奇地做到这一点。如果您想避免手动更改映射文件,请使用基于代码的解决方案,如ConfORM或FluentNHibernate。