在 Tenant.cs 中添加用户列表

Adding users list in Tenant.cs

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

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

迁移和更新数据库后,数据库中的一切看起来都很好。在 GetTenants() 中,tenantManager returns 用户列表为 null 的租户,用户从 userManager 中获取 null 作为租户也是如此。

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

如果您使用的是 EntityFrameworkCore,则必须使用预先加载。

// 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);
}