提问者:小点点

不同用户角色的不同DBContext


所以С能否请您向我解释一下,正确的方法是否是为不同类型的用户提供不同的DBContext。

例如:我们有两种方法的ApicController:

[HttpGet, Route("admin"), Authorize(RoleType.Admin)]
public Task<...> Get(... adminRequest)
{
    var query = mapper<AdminGetCommand>(adminRequest);
    return mediatr.Send(query);
}

[HttpGet, Route(""), Authorize(RoleType.User)]
public Task<...> Get(... userRequest)
{
    var query = mapper<UserGetCommand>(userRequest);
    return mediatr.Send(query);
}

之后,每个命令都依赖于具有不同配置的不同服务/DbContext。例如:

//filter for users
...
protected override void OnModelCreating(ModelBuilder builder)
{
    base.OnModelCreating(builder);

    builder.ApplyGlobalFilters<IDeletedUtcDateTime>(e => !e.DeletedUtcDateTime.HasValue);

}
...

//filter for admin 
...
protected override void OnModelCreating(ModelBuilder builder)
{
    ...
    base.OnModelCreating(builder);
    ...
}
...

我觉得我错过了什么或者有更好的解决办法


共1个答案

匿名用户

首先,我的问题是“为什么你需要多种上下文,而一种上下文就足够了?“看来你是在没有必要的地方引入复杂性。