Привет, я недавно работаю с IdentityServer4 и EFCore 3.1.0, и у меня возникла очень странная проблема со следующими двумя частями кода. В результате в функции ApiResourcesGetByIdController
, apiResource
в функции GetById
входят значения scope и secret. Однако в ApiResourcesUpdateController
, result
в Update
функция не включает значения области и секрета.
Использование этих двух конечных точек заключается в том, что веб-интерфейс вызывает конечную точку GetById
для получения ApiResource объект и делает некоторые изменения в интерфейсе. Затем веб-интерфейс вызывает конечную точку Update
для обновления объекта в базе данных.
Может кто-нибудь помочь понять, что может быть не так? Спасибо
[Authorize]
[Route("ApiResources")]
[ApiController]
public class ApiResourcesGetByIdController : ControllerBase
{
private readonly ConfigurationDbContext _configurationDbContext;
public ApiResourcesGetByIdController(
ConfigurationDbContext configurationDbContext)
{
_configurationDbContext = configurationDbContext;
}
[HttpGet]
[Route("")]
public IActionResult GetById([FromQuery]int id)
{
ApiResource apiResource = _configurationDbContext.ApiResources
.Include(apiResource => apiResource.Scopes)
.Include(apiResource => apiResource.Secrets)
.FirstOrDefault(apiResource => apiResource.Id == id);
}
}
[Authorize]
[Route("ApiResources")]
[ApiController]
public class ApiResourcesUpdateController : ControllerBase
{
private readonly ConfigurationDbContext _configurationDbContext;
public ApiResourcesUpdateController(
ConfigurationDbContext configurationDbContext)
{
_configurationDbContext = configurationDbContext;
}
[HttpPut]
[Route("")]
public IActionResult Update([FromBody] ApiResource resource )
{
ApiResource result = _configurationDbContext.ApiResources
.Include(apiResource => apiResource.Scopes)
.Include(apiResource => apiResource.Secrets)
.FirstOrDefault(ar => ar.Id == resource.Id);
return Ok()
}
}