实体框架表的 ToListAsync 出现 ASP.NET 错误

问题描述 投票:0回答:1

我正在开发一个创建房间和用户寄存器的项目。在代码的一部分中,由于某种原因,我收到有关表实体(房间)的一倍为空的错误。

这是获取系统房间列表的代码片段(处理程序):

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
) 保持为空。

谢谢你帮助我!

c# asp.net entity-framework asp.net-identity razor-pages
1个回答
0
投票

假设adm是Room类中的相关实体,则需要使用

.Include()
方法:

var rooms = await _context.Room
                          .Include(r => r.Adm)  navigation property
                          .ToListAsync();
© www.soinside.com 2019 - 2024. All rights reserved.