将大量使用nhibernate的应用程序从单租户迁移到具有多个模式的多租户

本文关键字:模式 迁移 单租户 nhibernate 应用程序 | 更新日期: 2023-09-27 17:49:18

我目前有一个单租户应用程序,它使用流畅的非hibernate映射将c#对象映射到MySQL数据库中的表。

作为将多租户引入我的应用程序的一部分,我正在考虑为每个租户使用单个模式。也就是说,我将拥有具有相同表结构的n模式,而n将拥有数百个模式。

我该如何配置NHibernate,以及我的流畅映射,这样我就可以任意访问正确的模式,而不必复制我的c#对象来映射到每个模式?

将大量使用nhibernate的应用程序从单租户迁移到具有多个模式的多租户

没有经过测试,但是您可以在SessionFactory中(技术上在其配置中)设置默认模式名称。属性为hibernate.default_schema。因此,您可以有多个SessionFactory,每个模式一个。显然,你不能在实体级别设置场景名称。

类似:

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