如何 return http 错误状态代码以及 class 中的自定义消息
How to return http error status code along with custom message in a class
我想要 return 一个带有自定义消息的 https 错误状态代码 class。但是,每当我尝试这样做时,它都会说它无法从 IResult 转换为我的模型 class 员工。在创建处理 sql 逻辑的 class 之前,我在 program.cs 文件中有如下内容,当我输入数据库中不存在的值时,该文件按预期工作。
app.MapGet("/employee/{id}", (ApplicationDbContext db, int id) =>
{
var employee = db.Employee.Find(id);
if (employee == null)
return Results.NotFound("Employee not found");
return Results.Ok(employee);
});
现在创建一个单独的 class 将所有逻辑放在一个文件中 我在 program.cs 文件中有以下内容,在单独的文件中有逻辑。
app.MapGet("/employee/{id}", (IDataRepository dr, int id) =>
{
return dr.GetEmployee(id);
});
现在在单独的文件中:
public Employee GetEmployee(int id)
{
var employee = _db.Employee.Find(id);
if (employee == null)
{
return Results.NotFound("Employee not found!");
}
return employee;
}
它建议对我的模特 class 进行演员表,员工。当我输入一个 id 时知道它不存在于数据库中,它会给我一个转换错误,说无法转换两者。任何建议将不胜感激。
如果您想拆分代码,我建议您在端点文件中保留 nofound 方法。实际上,此逻辑与您的 GetEmployee 方法无关。
以后如果你想在你的另一部分代码中复用GetEmployee逻辑,notfound方法会给你带来麻烦。
我的意思是在职责方面,你的方法GetEmployee是检索员工并返回状态码(与员工无关)。
我想要 return 一个带有自定义消息的 https 错误状态代码 class。但是,每当我尝试这样做时,它都会说它无法从 IResult 转换为我的模型 class 员工。在创建处理 sql 逻辑的 class 之前,我在 program.cs 文件中有如下内容,当我输入数据库中不存在的值时,该文件按预期工作。
app.MapGet("/employee/{id}", (ApplicationDbContext db, int id) =>
{
var employee = db.Employee.Find(id);
if (employee == null)
return Results.NotFound("Employee not found");
return Results.Ok(employee);
});
现在创建一个单独的 class 将所有逻辑放在一个文件中 我在 program.cs 文件中有以下内容,在单独的文件中有逻辑。
app.MapGet("/employee/{id}", (IDataRepository dr, int id) =>
{
return dr.GetEmployee(id);
});
现在在单独的文件中:
public Employee GetEmployee(int id)
{
var employee = _db.Employee.Find(id);
if (employee == null)
{
return Results.NotFound("Employee not found!");
}
return employee;
}
它建议对我的模特 class 进行演员表,员工。当我输入一个 id 时知道它不存在于数据库中,它会给我一个转换错误,说无法转换两者。任何建议将不胜感激。
如果您想拆分代码,我建议您在端点文件中保留 nofound 方法。实际上,此逻辑与您的 GetEmployee 方法无关。 以后如果你想在你的另一部分代码中复用GetEmployee逻辑,notfound方法会给你带来麻烦。
我的意思是在职责方面,你的方法GetEmployee是检索员工并返回状态码(与员工无关)。