将NHibernate应用程序转换为多租户的最佳做法?

时间:2009-11-08 21:55:50

标签: asp.net-mvc nhibernate multi-tenant

我有一个简单的ASP.NET MVC + OpenID + NHibernate 应用程序(在MSSQL Server DB之上)。该应用程序严格来说是单租户,仅支持多个用户,只有2个角色( Admin User )。

我想将此应用转换为多租户应用。我的要求是有限的:我只需要介绍帐户的概念,每个帐户都有自己的一组用户,其行为与原始的非多租户应用程序完全相同。帐户之间没有互动。

以最简单的方式执行此迁移的最佳做法是什么?特别是,我可以使用 Account_id 字段手动更新所有实体和存储库,并上传逻辑。但是,我想知道是否有更聪明的方法可以某种方式抽象这方面。

Ps:应用程序非常轻,我希望为每个帐户引入一个新的数据库实例。

1 个答案:

答案 0 :(得分:3)

我能想到的最好的事情可能就是拥抱NHibernate的Filter功能。它允许您轻松地对正在运行的查询启用过滤器,您可以选择在设置为多租户的表上启用它们