我正在开发一个创建房间和用户寄存器的项目。在代码的一部分中,由于某种原因,我收到有关表实体(房间)的一倍为空的错误。
这是获取系统房间列表的代码片段(处理程序):
public async Task OnGetAsync()
{
var adm = await _context.User.FirstOrDefaultAsync(u => u.Email == User.Identity.Name);
if (adm != null)
{
Owner = adm;
}
var rooms = await _context.Room.ToListAsync();
if (rooms.Count != 0)
{
foreach(var r in rooms)
{
Console.WriteLine($"Só o r: {r}");
Console.WriteLine($"r + adm: {r.Adm}");
Rooms.Add(r);
}
}
else
{
ViewData["RoomsEmpty"] = true;
}
}
在房间数据中有一些字段,其中“adm”包含房间的实体管理员,这是用户自己的实体。当代码到达“foreach”时,该字段 (
adm
) 保持为空。
谢谢你帮助我!
假设adm是Room类中的相关实体,则需要使用
.Include()
方法:
var rooms = await _context.Room
.Include(r => r.Adm) navigation property
.ToListAsync();