将NHibernate繁重的应用程序从单租户转移到具有多个模式的多租户

时间:2015-05-16 14:16:46

标签: c# nhibernate fluent-nhibernate multi-tenant fluent-nhibernate-mapping

我目前有一个单租户应用程序,它使用fluent-nhibernate映射将C#对象映射到MySQL数据库中的表。

作为将多租户纳入我的应用程序的努力的一部分,我正在考虑为每个租户提供单一模式。也就是说,我将拥有具有相同表结构的n模式,n位于数百个中。

如何配置NHibernate以及我的流畅映射,以便我可以随意访问正确的模式,而无需复制我的C#对象以映射到每个模式?

1 个答案:

答案 0 :(得分:1)

未经过测试,但您可以在SessionFactory(技术上在其配置中)设置默认架构名称。该属性为hibernate.default_schema。因此,您可以拥有多个SessionFactory,每个架构一个。显然,您不能在实体级别设置scema名称。

类似的东西:

var config = new Configuration();
... other configuration ...
config.Properties["hibernate.default_schema"] = "Foo"; // your schema name
ISessionFactory sf = config.BuildSessionFactory();