我已经开始使用Angular,.NET Framework和Module Zero来处理样板模板。
我正在使用多租户,并且我尝试修改租户视图,以便它列出每个租户中的用户,因此我尝试将public virtual ICollection<User> Users { get; set; }
添加到租户类,并public virtual Tenant Tenant { get; set; }
添加到用户类。
迁移和更新数据库后,db中的一切看起来都很好。在GetTenants()中,tenantManager返回租户,其中Users列表为null,用户从userManager获取为租户的用户也是如此。
使用样板文件是否有任何构建方式或最佳实践?
答案 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);
}