首页 > 解决方案 > 通过预先加载获取所有列

问题描述

我创建了一个与关系相关的表,ApplicationUser当我想使用即时加载时,我无法根据用户身份验证从该表中获取我的搜索库中的所有列。

var UserSites = await _SqldbContext.Users
                                   .Where(x => x.UserName == User.Identity.Name)
                                   .Include(x => x.sites)
                                   .ToListAsync() ;
return Json(UserSites);

但作为回报,我只得到该表的一行,两列

[{"sites":[{"id":1,"userId":"c0e8be95-535c-449c-9aa1-06702cd4c983"

但是我有更多的行,userId而且在这里我只有两列,但我有两列以上,我不确定这里有什么问题,请帮助我。

标签: asp.netsql-serverasp.net-identity

解决方案


我认为 ToListAsync() 工作正常,如果您设置断点,您可能会看到您网站上的所有数据,但在这里我认为 Json 没有正确显示它,而不是从您的示例中的用户表开始,我从您建议的表名网站开始(获取该表的所有数据)

 var UserSites = await _SqldbContext.sites.Include(x => x.[Name Of User in relation table]).Where(y=>y.[Name Of User in relation table].UserName== User.Identity.Name)
                .ToListAsync();


        List<sites> siteObject=new List<sites>();

        UserSites.ForEach(x =>
        {
            sites site = new sites() {
            // fill property of your class
            };

            siteObject.Add(site);
        });


        return Json(siteObject);

我希望这段代码对你有用。


推荐阅读