我有一個名為 Players 的模型,它在另一個名為 Teams 的模型中使用。POST 之后,GET 請求顯示球隊內的球員資料回傳 null,而其他所有資料都按預期回傳。請參閱下面的代碼。
播放器型號:
public class Player
{
public long Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
團隊模型:
public class Team
{
public long Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public IList<Player> Players { get; set; }
}
團隊 GET 請求:
[HttpGet]
public async Task<ActionResult<IEnumerable<Team>>> GetTeams()
{
return await _context.Teams.ToListAsync();
}
團隊 POST 請求:
[HttpPost]
public async Task<ActionResult<Team>> PostTeam(Team team)
{
_context.Teams.Add(team);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(GetTeam), new { id = team.Id }, team);
}
在 Swagger 上發布請求 JSON(僅供參考,此帖子成功):
{
"id": 1,
"name": "team name",
"location": "team location",
"players": [
{
"id": 1,
"firstName": "firstName",
"lastName": "lastName"
}
]
}
團隊 GET 請求回傳 JSON:
[
{
"id": 1,
"name": "string",
"location": "string",
"players": null
}
]
如何讓“玩家”資料按預期回傳輸入的資料?
uj5u.com熱心網友回復:
嘗試使用顯式加載來加載您的玩家收藏:
foreach(var team in teams)
{
var players = context.Entry(team)
.Collection(b => b.Players)
.Query();
}
或急切加載:
await _context.Teams.Include(t => t.Players).ToListAsync();
您也可以對Microsoft 的加載相關資料文章感興趣,以了解有關加載相關物體的更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/510758.html
上一篇:帶有ID引數的GET請求和PUT請求不會影響我的模型類中的模型類
下一篇:在YoutubecommentThreads上請求時出現HttpError400:檢查請求正文中<code>commentThread</code>資源的結構
