【问题标题】:Adding users list in Tenant.cs在 Tenant.cs 中添加用户列表
【发布时间】:2017-10-09 22:23:34
【问题描述】:

我已经开始使用 Angular、.NET Framework 和 Module Zero 处理样板模板。

我正在使用多租户,我正在尝试修改租户视图,以便它列出每个租户中的用户,因此我尝试将 public virtual ICollection<User> Users { get; set; } 添加到租户类并将 public virtual Tenant Tenant { get; set; } 添加到用户类。

迁移和更新数据库后,db 中的一切看起来都很好。在 GetTenants() 中,tenantManager 返回用户列表为 null 的租户,同样,用户从 userManager 获取 null 作为租户。

是否有任何使用样板的构建方式或最佳实践?

【问题讨论】:

    标签: aspnetboilerplate


    【解决方案1】:

    如果您使用的是 EntityFrameworkCore,则必须使用 eager-loading。

    // TenantManager.cs
    var tenants = TenantRepository.GetAllIncluding(t => t.Users);
    
    // UserManager.cs
    var users = AbpStore.UserRepository.GetAllIncluding(u => u.Tenant);
    

    记得配置逆属性:

    [InverseProperty("Tenant")]
    public virtual ICollection<User> Users { get; set; }
    

    您需要禁用IMayHaveTenant 过滤器才能查看跨租户实体:

    using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MayHaveTenant))
    {
        var tenants = TenantRepository.GetAllIncluding(t => t.Users);
    }
    

    【讨论】:

    • 没有帮助。此外,当出于某种原因将用户列表添加到租户类和租户到用户类迁移时,将 TenantId 添加为外键并为 AbpUsers 添加列 Tenant_Id 并将其添加为外键
    • 迁移在[AbpTenants]表public override void Up() { AddColumn("dbo.AbpUsers", "Tenant_Id", c =&gt; c.Int()); CreateIndex("dbo.AbpUsers", "TenantId"); CreateIndex("dbo.AbpUsers", "Tenant_Id"); AddForeignKey("dbo.AbpUsers", "Tenant_Id", "dbo.AbpTenants", "Id"); AddForeignKey("dbo.AbpUsers", "TenantId", "dbo.AbpTenants", "Id"); }中添加Tenant_Id
    • 即使在解决了数据库迁移问题之后,我也无法让用户列表与您的答案一起使用 (stackoverflow.com/questions/46338234/…)
    • 我用新模板尝试了这个,只添加了你在数据库迁移帖子中看到的类的更改(感谢顺便说一句的回答),在 TenantAppService 中我尝试了以下操作:public ListResultDto&lt;TenantDto&gt; GetTenants() { var users_test = _tenantManager.Tenants.ToList(); var users_test1 = _tenantRepository.GetAllIncluding(t =&gt; t.Users); var users_test2 = _tenantRepository.GetAllList(); var users_test3 = _tenantManager.GetById(1); return _tenantManager.Tenants ); }
    • 调试仍然给我 users_test1 中的用户数=0。我在 db 中有两个用户,admin 和 testuser,TenantId=1("Default" tenancy)
    猜你喜欢
    • 2022-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    相关资源
    最近更新 更多