A. ABP vNext报错:An unhandled exception occurred while processing the request.求大佬解惑
如果使用来mvc +ef
EF是一个实体对象数据库的框架,是需要进行数据库的连接的,如果使用的自带的应该是sqlserver数据库,建议你看看本机是否安装来数据库的引擎和实例,然后查看实例的数据库连接字符串是否可用
B. abp 租户可以分组吗
可以的,在使用 ar.spdio.com 二级域名访问时就可以自动进行租户分组。在页面上方可以分组查看。
通常SaaS都是需要多租户支持的。维基网络对多租户的解释是:软件多租户是指一个软件架构的实例软件运行在一个服务器上,但存在多个租户。租户是一组共享一个公共的用户访问特定权限的软件实例。多租户架构,软件应用程序旨在提供每个租户专用的实例包括数据、配置、用户管理、租户个体功能和非功能属性。多租户与多实例架构,独立的软件实例代表不同的租户操作。
多租户一般涉及如下几种场景:
多部署-多数据库:即针对每个租户独立部署一套应用程序实例,每个实例对应一个数据库。这种不算是真正的多租户,不过对于在设计时没有考虑多租户的遗留系统采用这种部署方式不失为一种折中办法。
单部署-多数据库:只有唯一的一个应用程序实例,每个租户分别连接不同的数据库。
单部署-单数据库:应用程序实例和数据库都是一个。通过在需要隔离数据的数据表中加入一个类似TanantId或EnterpriseId来区分。
单部署-混搭数据库:应用程序实例一个,但是数据库根据情况,可以是单个或者多个。比如免费用户放到一个数据库中,高级用户分别有自己的数据库。
集群部署-单/多/混搭数据库:应用程序的逻辑实例还是一个(只是为了高可用和性能部署为一个集群),然后对应的数据库可以是单个、多个和混搭。
另外,除了针对租户的数据库以外,可能还需要一个全局的数据库(称之为主机数据库)来保存全局范围的配置数据。在单数据库情况下,主机数据可能就和租户数据放在一起(甚至同一个数据表中)。
C. abp怎么连接sqlserver数据库
通过检查旁边的列名的复选框,在查询中显示。在中间窗格中,你可以取消一个输出复选框以隐藏该字段被显示在查询运行(但字段仍然会参与查询)。
添加值下的过滤器来缩小结果到只有那些感兴趣的(在这个例子中,它是创建一个WHERE子句只选择那些记录了StatusId“1”- 也就是“To Do”)!
D. abp框架如何多租户只显示自己的数据
abp框架如何多租户只显示自己的数据,操作如下
1、租户登录:
基于abp实施的identityserver4授权中心,多租户登录时必须指定当前租户ID,以便将当前租户ID包含在令牌中。
将请求标头添加到登录界面:__tenant:“租户ID”
2、实现多租户
一般来说,直接启用多租户:
MultiTenancyConsts.IsEnabla = true
但是,如果您是多数据库多租户,则需要配置租户存储,否则将抛出“找不到租户存储”异常。
具体步骤:
域层
引用nuget包:Volo.Abp.TenantManagement.Domain,并依赖于AbpTenantManagementDomainMole模块
domain.shared层
引用nuget包Volo.Abp.TenantManagement.Domain.Shared;取决于模块;
实体框架层
引用nuget包:Volo.Abp.TenantManagement.EntityFrameworkCore,它依赖于模块;
dbcontext连接字符串必须与数据库中存储的名称相同,即,存储在AbpTenantConnectionStrings表中的名称与dbcontext记录的ConnectionStringName一致