C# 如何从asp.net zero中的标识表中获取记录
我想从标识表(例如,C# 如何从asp.net zero中的标识表中获取记录,c#,asp.net-core,C#,Asp.net Core,我想从标识表(例如,AspNetUsers,AspNetRoles)中获取记录,我正在使用ASP.Net样板框架 我已经使用IRepository界面为标识表创建了存储库,如: private readonly IRepository<User,long> _userRepository; private readonly IRepository<Role> _roleRepository; public AccountController(IRepository<
AspNetUsers
,AspNetRoles
)中获取记录,我正在使用ASP.Net样板框架
我已经使用IRepository
界面为标识表创建了存储库,如:
private readonly IRepository<User,long> _userRepository;
private readonly IRepository<Role> _roleRepository;
public AccountController(IRepository<User,long> userRepository,
IRepository<Role> roleRepository)
{
_userRepository = userRepository;
_roleRepository = roleRepository;
}
我从AspNetRoles
表中获得了零条记录,但数据库中有一些记录。所以,我的第一个问题是,我们是否可以为标识表创建和使用存储库
我也使用过类似于GetUsersInOrganizationunit()
的管理方法,但它也给出了相同的结果(即未找到任何记录)
那么,还有比上述更好的解决方案吗?请尝试按工作单元包装存储库的使用。大概是这样的:
private readonly IUnitOfWorkManager _unitOfWorkManager;
private readonly IRepository<User,long> _userRepository;
private readonly IRepository<Role> _roleRepository;
public AccountController(IUnitOfWorkManager unitOfWorkManager,
IRepository<User,long> userRepository,
IRepository<Role> roleRepository)
{
_unitOfWorkManager = unitOfWorkManager;
_userRepository = userRepository;
_roleRepository = roleRepository;
}
public override async Task YourMethod() {
using (_unitOfWorkManager.Current.SetTenantId(tenant.Id)) {
var roles =_roleRepository.GetAll();
var users =_userRepository.GetAll();
}
}
专用只读IUnitOfWorkManager\u unitOfWorkManager;
私有只读IRepository用户存储库;
私人只读电子存储;
公共账户控制员(IUnitOfWorkManager unitOfWorkManager,
IRepository用户存储库,
i假定角色(假定)
{
_unitOfWorkManager=unitOfWorkManager;
_userRepository=userRepository;
_roleRepository=roleRepository;
}
公共重写异步任务方法(){
使用(_unitOfWorkManager.Current.SetTenantId(tenant.Id)){
var roles=_roleRepository.GetAll();
var users=_userRepository.GetAll();
}
}
您必须向我们真正展示存储库代码,否则我们无法知道实际发生了什么。
OrganizationUnit usersInOrganization = new OrganizationUnit();
usersInOrganization.TenantId = tenant.Id;
var users = await_userManager.GetUsersInOrganizationUnit(usersInOrganization);
private readonly IUnitOfWorkManager _unitOfWorkManager;
private readonly IRepository<User,long> _userRepository;
private readonly IRepository<Role> _roleRepository;
public AccountController(IUnitOfWorkManager unitOfWorkManager,
IRepository<User,long> userRepository,
IRepository<Role> roleRepository)
{
_unitOfWorkManager = unitOfWorkManager;
_userRepository = userRepository;
_roleRepository = roleRepository;
}
public override async Task YourMethod() {
using (_unitOfWorkManager.Current.SetTenantId(tenant.Id)) {
var roles =_roleRepository.GetAll();
var users =_userRepository.GetAll();
}
}