网上有好多解释,有些上升到了架构设计,让你觉得似乎非常高深莫测,特别是目前流行的ABP架构中就有提到多租户,其实说的简单一点就是再每一张数据库的表中添加一个TenantId的字段,用于区分属于不同的租户的数据。关键是现实的方式必须对开发人员来说是透明的,不需要关注这个字段的信息,由后台或是封装在基类中实现数据的筛选和更新。从新用户注册时就必须指定用户的TenantId,我的例子是用CompanyId,公司信息做为TenantId,哪些用户属于不同的公司,每个用户将来只能修改和查询属于本公司的数据。接下来就是用户登录的时候获取用户信息的时候把TenantId保存起来,asp.net mvc 是通过 Identity 2.0实现的认证和授权,这里需要重写部分代码来实现。

利用EF6简单实现多租户的应用

利用EF6简单实现多租户的应用

利用EF6简单实现多租户的应用

利用EF6简单实现多租户的应用

利用EF6简单实现多租户的应用

利用EF6简单实现多租户的应用

利用EF6简单实现多租户的应用