提问人:capslo 提问时间:6/16/2023 最后编辑:Floriancapslo 更新时间:6/16/2023 访问量:52
如何创建通用端点以适应七种不同类型的端点?
How can a generic endpoint be created to accommodate seven different types?
问:
嗨,我正在尝试创建通用端点以允许所有这些类型和大多数属性的名称,因为对于 db 中的某些类型,我有 2 个单元格(date1,date2)。我正在尝试使用 T 类型,但是当我调用端点时,我得到 404。稍后我需要有关类型的知识来更新数据库中的正确单元格。我不知道,也许为每种类型创建七个端点会更好。最佳做法是什么?我已经看到了 Jobject 的一些解决方案,但很难将其转换为对象。
FirstEnum?
SecondEnum?
DateTime? GenericDate1
DateTime? GenericDate2
String?
bool?
int? GenericInt1
int? GenericInt2
decimal?
允许所有这些类型的终结点:
public async Task<IActionResult> UpdateData<T>(long id, [FromBody] T value)
{
var result = await _dataService.UpdateData(id, value);
if (!result)
return NotFound();
return Ok(result);
}
保存到数据库,只是为了显示我的意思的一部分:
private async Task UpdateData(T newValue)
{
switch (newValue)
{
case FirstEnum first:
existingDataPoint.FirstEnum = first;
break;
case SecondEnum secondEnum :
existingDataPoint.SecondEnum = secondEnum ;
break;
case bool genericBool:
existingDataPoint.GenericBool = genericBool;
break;
case DateTime genericDate when newValue.Name == "GenericDate1":
existingDataPoint.GenericDate1 = genericDate;
break;
case DateTime genericDate when newValue.Name == "GenericDate2":
existingDataPoint.GenericDate2 = genericDate;
break;
}
}
答: 暂无答案
评论
AdditionalDataAttribute