我目前有一个单租户应用程序,它使用fluent-nhibernate映射将C#对象映射到MySQL数据库中的表。
作为将多租户纳入我的应用程序的努力的一部分,我正在考虑为每个租户提供单一模式。也就是说,我将拥有具有相同表结构的n
模式,n
位于数百个中。
如何配置NHibernate以及我的流畅映射,以便我可以随意访问正确的模式,而无需复制我的C#对象以映射到每个模式?
答案 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();