【问题标题】:How to set database schema for namespace in nhibernate如何在 nhibernate 中为命名空间设置数据库模式
【发布时间】:2010-09-13 21:54:28
【问题描述】:

我有一个包含多个模式的数据库:安全、贸易等。 每个 shema 都有多个表。 IE。安全架构有:用户、角色等。

现在,我可以设置 nhibernate 以便我绑定到命名空间的架构。 IE。我的项目中有一个安全命名空间,其中包含用户和角色 POCO。 所以我不会将绑定数据库模式设置为命名空间。 我知道我可以在每个类的映射文件中添加 Schema,但如果我有 ie。 1000 类我必须为每个类指定模式。

请帮忙。

【问题讨论】:

    标签: nhibernate schema mapping


    【解决方案1】:

    您可以在创建 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();
    

    请注意,通常您只构建一次会话工厂,因此性能影响(如果有)只发生一次。

    【讨论】:

      【解决方案2】:

      NHibernate 不会神奇地做到这一点。如果您想避免手动更改映射文件,请改用 ConfORM 或 FluentNHibernate 等基于代码的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-15
        相关资源
        最近更新 更多