如何使用EF6技术实现支持多租户架构的数据库长尾应用功能?

2026-04-01 11:560阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1469个文字,预计阅读时间需要6分钟。

如何使用EF6技术实现支持多租户架构的数据库长尾应用功能?

多租户是一种架构设计,网上有很多解释,有些上升到了架构设计的高度,让你感觉非常深入。特别的是,在当前流行的ABP架构中,就提到了多租户(IMustHaveTenant)。简单来说,就是每张数据。

什么是多租户

网上有好多解释,有些上升到了架构设计,让你觉得似乎非常高深莫测,特别是目前流行的ABP架构中就有提到多租户(IMustHaveTenant),其实说的简单一点就是再每一张数据库的表中添加一个TenantId的字段,用于区分属于不同的租户(或是说不同的用户组)的数据。关键是现实的方式必须对开发人员来说是透明的,不需要关注这个字段的信息,由后台或是封装在基类中实现数据的筛选和更新。

基本原理

从新用户注册时就必须指定用户的TenantId,我的例子是用CompanyId,公司信息做为TenantId,哪些用户属于不同的公司,每个用户将来只能修改和查询属于本公司的数据。

接下来就是用户登录的时候获取用户信息的时候把TenantId保存起来,asp.net mvc(不是 core) 是通过 Identity 2.0实现的认证和授权,这里需要重写部分代码来实现。

阅读全文

本文共计1469个文字,预计阅读时间需要6分钟。

如何使用EF6技术实现支持多租户架构的数据库长尾应用功能?

多租户是一种架构设计,网上有很多解释,有些上升到了架构设计的高度,让你感觉非常深入。特别的是,在当前流行的ABP架构中,就提到了多租户(IMustHaveTenant)。简单来说,就是每张数据。

什么是多租户

网上有好多解释,有些上升到了架构设计,让你觉得似乎非常高深莫测,特别是目前流行的ABP架构中就有提到多租户(IMustHaveTenant),其实说的简单一点就是再每一张数据库的表中添加一个TenantId的字段,用于区分属于不同的租户(或是说不同的用户组)的数据。关键是现实的方式必须对开发人员来说是透明的,不需要关注这个字段的信息,由后台或是封装在基类中实现数据的筛选和更新。

基本原理

从新用户注册时就必须指定用户的TenantId,我的例子是用CompanyId,公司信息做为TenantId,哪些用户属于不同的公司,每个用户将来只能修改和查询属于本公司的数据。

接下来就是用户登录的时候获取用户信息的时候把TenantId保存起来,asp.net mvc(不是 core) 是通过 Identity 2.0实现的认证和授权,这里需要重写部分代码来实现。

阅读全文