代码之家  ›  专栏  ›  技术社区  ›  ryan

EF1导航属性不工作?

  •  0
  • ryan  · 技术社区  · 14 年前

    我的实体模型是从现有数据库生成的。有一个多对多的连接台被EF收集和隐藏。

    关系确实有效,因为此查询按预期返回2个用户。

    public iqueryable<user>findUsersByGroupID(int group_id)
    {
    返回db.users.where(u=>u.groups.any(g=>g.group_id==group_id));
    }
    < /代码> 
    
    

    但是,当定位作为上述结果集一部分的用户时,组导航属性计数为0。我不应该明确加入……正确的?

    公共用户findUserByID(int id)
    {
    首先返回db.users.first(u=>u.user_id==id);
    }
    < /代码> 
    
    

    任意对多的连接表被EF接收和隐藏。

    该关系确实有效,因为此查询按预期返回2个用户。

        public IQueryable<User> FindUsersByGroupID(int group_id)
        {
            return db.Users.Where(u => u.Groups.Any(g => g.Group_ID == group_id));
        }
    

    但是,当定位作为上述结果集一部分的用户时,组导航属性计数为0。我不应该明确加入……正确的?

        public User FindUserByID(int id)
        {
            return db.Users.First(u => u.User_ID == id);
        }
    

    1 回复  |  直到 14 年前
        1
  •  2
  •   moi_meme    14 年前

    尝试

    db.Users.Include("Groups").First(u => u.User_ID == id);
    

    或者装上

    if (!user.Groups.IsLoaded)
    {
        user.Groups.Load();
    }