将 NHibernate-heavy 应用程序从单租户移动到具有多个模式的多租户
Moving an NHibernate-heavy application from single-tenancy to multi-tenancy with multiple schemas
我目前有一个单租户应用程序,它使用 fluent-nhibernate 映射将 C# 对象映射到我的 MySQL 数据库中的 tables。
作为将多租户引入我的应用程序的努力的一部分,我正在考虑为每个租户使用一个模式。也就是说,我将拥有具有相同 table 结构的 n
模式,n
数以百计。
如何安装 NHibernate 以及流畅的映射,以便我可以任意访问正确的模式,而不必复制我的 C# 对象以映射到每个模式?
未测试,但您可以在 SessionFactory
(技术上在其配置中)设置默认模式名称。 属性 是 hibernate.default_schema
。所以你可以有多个 SessionFactory
,每个模式一个。显然,您不能在实体级别设置架构名称。
类似于:
var config = new Configuration();
... other configuration ...
config.Properties["hibernate.default_schema"] = "Foo"; // your schema name
ISessionFactory sf = config.BuildSessionFactory();
我目前有一个单租户应用程序,它使用 fluent-nhibernate 映射将 C# 对象映射到我的 MySQL 数据库中的 tables。
作为将多租户引入我的应用程序的努力的一部分,我正在考虑为每个租户使用一个模式。也就是说,我将拥有具有相同 table 结构的 n
模式,n
数以百计。
如何安装 NHibernate 以及流畅的映射,以便我可以任意访问正确的模式,而不必复制我的 C# 对象以映射到每个模式?
未测试,但您可以在 SessionFactory
(技术上在其配置中)设置默认模式名称。 属性 是 hibernate.default_schema
。所以你可以有多个 SessionFactory
,每个模式一个。显然,您不能在实体级别设置架构名称。
类似于:
var config = new Configuration();
... other configuration ...
config.Properties["hibernate.default_schema"] = "Foo"; // your schema name
ISessionFactory sf = config.BuildSessionFactory();