zoukankan      html  css  js  c++  java
  • Abp 多租户

    Abp 的数据库Seed, 并不是Migration 的时候生成的数据,而是运行时生成的数据。这个在SeedHelper.cs 中看到。

    这样不用设置他们的ID 了,也少了迁移失败的可能麻烦。

    多租户:

    有一个超级管理员,和普通用户是一个实体类。他的TenantID是null.

    每个租户管理员是一个User, 和普通用户是一个实体类。他有Admin 这个角色。他登陆之后,可以给他的成员设置角色,也可以设为Admin.

      var adminUser = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == _tenantId && u.UserName == AbpUserBase.AdminUserName);
                if (adminUser == null)
                {
                    adminUser = User.CreateTenantAdminUser(_tenantId, "admin@defaulttenant.com");
                    adminUser.Password = new PasswordHasher<User>(new OptionsWrapper<PasswordHasherOptions>(new PasswordHasherOptions())).HashPassword(adminUser, "123qwe");
                    adminUser.IsEmailConfirmed = true;
                    adminUser.IsActive = true;
    
                    _context.Users.Add(adminUser);
                    _context.SaveChanges();
    
                    // Assign Admin role to admin user
                    _context.UserRoles.Add(new UserRole(_tenantId, adminUser.Id, adminRole.Id));
                    _context.SaveChanges();
                }
    

      ABP和Module-Zero假设存在一个预定义的租户,它的租户名是“Default”,且Id是1。在一个单租户的应用中,它被用作单独的租户。上面的代码就是他的实现。运行时执行!

    多租户的形式:

    单应用多数据库。

      数据库改变结构的时候,迁移麻烦

    单应用单数据库。

      维护简单,数据库比较笨重,所有数据都在一块

    单应用混合数据库。

    。。。

    ABP 支持各种组合。

    气功波(18037675651)
  • 相关阅读:
    搜索能力
    sublimetext中文论坛
    Sublime Text添加插入带当前时间说明
    X86平台简称
    centos 下如何加入sudo 用户
    Git Shell 安装版本
    Git 使用教程
    CentOS 下安装配置mongodb
    Mysql 解决left join 数据重复的问题
    CentOS 下安装翻译软件星际译 StarDict
  • 原文地址:https://www.cnblogs.com/qgbo/p/12726859.html
Copyright © 2011-2022 走看看