在Tenant.cs中添加用户列表

时间:2017-09-18 14:14:56

标签: aspnetboilerplate

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

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

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

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

1 个答案:

答案 0 :(得分:2)

如果您使用的是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);
}