是否可以使用 Odata 自定义操作 POST 作为触发器?
Is it possible to use a Odata Custom Action POST as trigger?
我想在注销时从我的数据库中删除用户关系。因此我只需要来自前端的触发器,这样我就可以从 HttpContext 中获取用户关系。该方法位于我的应用程序的主实体控制器中。这样做的原因是,我将不得不为实体编写一个控制器 "UserRelation" 只是因为这个方法。
我的 Remove-Action 看起来像这样
在控制器中:
[HttpPost]
public async Task<IActionResult> RemoveUser()
{
var userRelation = dbContext.UserRelation.FindAsync(GetId());
//some validation
dbContext.Remove(userRelation );
await dbContext.SaveAsync();
return Ok();
}
在模型构建器中
builder.EntityType<MainEntity>().Action("RemoveUser");
API-通话
/odata/MainController/RemoveUser
邮递员呼叫总是以 404 结束。我如何访问此方法。在这个控制器中设置方法是否都是不好的做法?
找到解决方案:
如果你这样设置Action,效果很好。
builder.EntityType<MainEntity>().Collection.Action("RemoveUser");
我想在注销时从我的数据库中删除用户关系。因此我只需要来自前端的触发器,这样我就可以从 HttpContext 中获取用户关系。该方法位于我的应用程序的主实体控制器中。这样做的原因是,我将不得不为实体编写一个控制器 "UserRelation" 只是因为这个方法。
我的 Remove-Action 看起来像这样
在控制器中:
[HttpPost]
public async Task<IActionResult> RemoveUser()
{
var userRelation = dbContext.UserRelation.FindAsync(GetId());
//some validation
dbContext.Remove(userRelation );
await dbContext.SaveAsync();
return Ok();
}
在模型构建器中
builder.EntityType<MainEntity>().Action("RemoveUser");
API-通话
/odata/MainController/RemoveUser
邮递员呼叫总是以 404 结束。我如何访问此方法。在这个控制器中设置方法是否都是不好的做法?
找到解决方案:
如果你这样设置Action,效果很好。
builder.EntityType<MainEntity>().Collection.Action("RemoveUser");