公式中未使用的nHibernate默认架构

公式中未使用的nHibernate默认架构,nhibernate,schema,properties,formula,Nhibernate,Schema,Properties,Formula,嘿,伙计们, 我正在使用NHibernate2.2,遇到了一个我似乎找不到答案的问题。我的程序使用hibernate.cfg.xml文件中指定的默认模式,如下所示: MY_SCHEMA 对于所有生成的SQL语句,它的工作方式都是广告式的,但是我有一个公式中的语句也需要指定默认模式: 我的模式相对频繁地更改,因此我需要将SQL解释为 这在不使用硬编码模式的情况下是可能的吗?谢谢 Kevin您可以在构建会话工厂时动态更改映射 当然,如果您使用基于代码的映射解决方案(如Fluent或ConfORM)

嘿,伙计们,
我正在使用NHibernate2.2,遇到了一个我似乎找不到答案的问题。我的程序使用hibernate.cfg.xml文件中指定的默认模式,如下所示:
MY_SCHEMA

对于所有生成的SQL语句,它的工作方式都是广告式的,但是我有一个公式中的语句也需要指定默认模式:

我的模式相对频繁地更改,因此我需要将SQL解释为

这在不使用硬编码模式的情况下是可能的吗?谢谢


Kevin

您可以在构建会话工厂时动态更改映射


当然,如果您使用基于代码的映射解决方案(如Fluent或ConfORM),那么这将更容易实现。

感谢您的及时回复!我了解如何在会话工厂内更改映射,这就是我当前默认的_模式的定义。我的问题是,由于公式不是“生成的SQL”,nHibernate没有像对其他所有内容那样,对非限定表名应用默认的_模式。有没有办法从配置文件中提取当前默认值,或者告诉nHibernate按照生成SQL的方式处理公式?也许我的答案不够清楚。我建议您在创建配置时修改公式。遗憾的是,我们只能使用基本xml文件,不能动态进行配置。您仍然可以在内存中加载xml映射,查找公式,更改公式,然后使用configuration.AddDocument(XmlDocument)重载添加映射。有很多解决办法。我猜不出你的人工约束是什么。按照这些思路,它不会很优雅,但我不确定在我的约束范围内是否有一个完美的解决方案。谢谢你的帮助!使用登录触发器