Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多租户解析管理站点中的租户上下文_C#_Entity Framework_Asp.net Identity_Multi Tenant - Fatal编程技术网

C# 多租户解析管理站点中的租户上下文

C# 多租户解析管理站点中的租户上下文,c#,entity-framework,asp.net-identity,multi-tenant,C#,Entity Framework,Asp.net Identity,Multi Tenant,我正在用dot net core 2.1开发一个多租户应用程序。我使用了身份框架进行用户管理。我有两个web项目和两个租户和系统的数据上下文 SystemDb (SystemDbContext)- central database TenantDb (TenantDbContext)- tenant (this has TenantId filter) 当我从系统门户创建租户时,我想在租户数据库中创建一个默认管理员用户。我想知道解决租户数据上下文的最佳方法是什么。租户实体具有到数据库的连接

我正在用dot net core 2.1开发一个多租户应用程序。我使用了身份框架进行用户管理。我有两个web项目和两个租户和系统的数据上下文

SystemDb (SystemDbContext)- central database

TenantDb (TenantDbContext)- tenant (this has TenantId filter)
当我从系统门户创建租户时,我想在租户数据库中创建一个默认管理员用户。我想知道解决租户数据上下文的最佳方法是什么。租户实体具有到数据库的连接

public class TenantManagementService: ITenantManagementService
{
    private readonly ISystemDbContext _systemDbContext;
    private readonly UserManager<SystemUser> _userManager;

    public InsertTenantDetailsCommandHandler(ISystemDbContext systemDbContext, UserManager<SystemUser> userManager)
    {
        _systemDbContext = systemDbContext;
    }

    public async Task CreateTenant(Tenant tenant)
    {
        await _systemDbContext.Tenants.AddAsync(tenant);
        await _systemDbContext.SaveChangesAsync();

        // I need to create default user in tenantDbContext
    }
}
公共类租户管理服务:ITenantManagementService
{
私有只读ISystemDbContext _systemDbContext;
私有只读用户管理器_UserManager;
public InsertTenantDetailsCommandHandler(ISystemDbContext systemDbContext,UserManager UserManager)
{
_systemDbContext=systemDbContext;
}
公共异步任务CreateTenant(租户租户)
{
wait_systemDbContext.Tenants.AddAsync(tenant);
wait_systemDbContext.saveChangesSync();
//我需要在tenantDbContext中创建默认用户
}
}

您可以将租户上下文单独放置在不同的项目中,并在系统项目中引用生成的dll文件