我想将 CRUD 操作从 Program.cs 移动到一个单独的文件。搜索用户时,该方法返回 User 类型,但如果未找到这样的用户,则返回错误消息,但类型不同。编译器对此抱怨。
如何添加为函数返回不同类型的能力?或者还有什么不同的玩法?
app.MapGet("/user/{id}", (int id) =>
{
return Results.Ok(TryToGetUserBy(id));
});
User TryToGetUserBy(int id)
{
User? user = users.FirstOrDefault(user => user.Id == id);
if (user == null) return Results.NotFound(new { message = "Пользователь с таким id не найден" });
return user;
{
在这种情况下,相反,缩小功能的工作范围会更好。
TryToGetUserBy应该只返回User,响应本身应该在MapGet例如像这样:
向其中添加ApiController项目和方法:
在这种情况下,结果将是 HTTP 状态代码 200 或 404。
详细了解ASP.NET Core Web API 中的控制器操作返回类型。