所以。您向我解釋正確的方法是否是為不同型別的用戶使用不同的 DBContext。
例如:我們有 2 個方法的 ApiController:
[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);
}
之后每個命令取決于不同的 Service/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);
...
}
...
我覺得我遺漏了一些東西,或者這里有更好的解決方案
uj5u.com熱心網友回復:
您向我解釋正確的方法是否是為不同型別的用戶使用不同的 DBContext。
如果您希望為用戶使用一組不同的全域查詢過濾器(或其他映射或行為更改),這是一種合理的方法。您可以簡單地從 AdminDbContext 派生 UserDbContext 或從基本 DbContext 派生兩者,并在 DI 中單獨注冊它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/377996.html
