【发布时间】:2021-07-13 02:27:45
【问题描述】:
在 http get 方法中,我想获取与 todoItem 关联的用户 id,而不获取完整的用户对象(只是它的 id)。这是我目前所拥有的:
[HttpGet]
public async Task<ActionResult<List<TodoItem>>> GetTodoItems()
{
var todoItem = await _context.TodoItems.Include(x => x.User).ToListAsync();
if (!todoItem.Any())
return NotFound();
return todoItem;
}
当前输出:
{
"id": "47167fe1-4831-4612-8f50-4ba4c70e7eac",
"name": "read book",
"isComplete": false,
"secrete": "no secrete",
"user": {
"id": "3ca7b4b8-dd63-40ce-9d3a-3fc88286da64",
"email": "Lynne87@test.com",
"firstName": "Lynne",
"lastName": "Harber"
}
}
需要的输出:
{
"id": "47167fe1-4831-4612-8f50-4ba4c70e7eac",
"name": "read book",
"isComplete": false,
"secrete": "no secrete",
"user": "3ca7b4b8-dd63-40ce-9d3a-3fc88286da64",
}
}
【问题讨论】:
-
在调用
ToListAsync之前,仅将Select与您想要的成员一起使用。如果您只期望一个结果,请使用FirstOrDefaultAsync或SingleOrDefaultAsync。如果Select返回所有必要字段,则不需要Include -
顺便说一句,所需的输出不再是
ToDoItem,这意味着返回类型应该改变并反映实际输出
标签: c# entity-framework linq asp.net-web-api