【问题标题】:C# Entity framework incorrect query resultC# Entity framework 不正确的查询结果
【发布时间】:2020-05-13 12:54:22
【问题描述】:

我在 C# 中使用实体框架,代码如下。

 public List<UserSessionModell> getSessions()
    {
        var result = (from x in db.users
                      from y in db.psw
                      from z in db.users_data
                      from t in db.user_roles
                      from u in db.roles
                      select new UserSessionModell
                      {
                          User_id = x.id,
                          UserName = x.username,
                          Password = y.psw1,
                          Work_id = z.IsEmployedAt,
                          Role = t.role,
                          RoleName = u.id.ToString()
                      }).ToList();

        return result;
    }

有问题的表连接如下:

每个属性都接收到正确的数据,除了“角色”表,它总是获取表中的最后一条记录。请帮忙看看是什么原因?

【问题讨论】:

    标签: c# frameworks entity


    【解决方案1】:

    我认为你应该加入表格。

    var result = (from user in db.users
                          join psw in db.psw on user.user_id equals psw.user_id 
                          join userdata in db.users_data on userdata.user_id equals psw.user_id 
                          join userrole in db.user_roles on userdata.user_id equals userrole .user_id
                          join role in db.roles on role.id equals userrole .role_id
                          select new UserSessionModell
                          {
                              User_id = user.id,
                              UserName = user.username,
                              Password = psw.psw1,
                              Work_id = userdata.IsEmployedAt,
                              Role = userrole.role,
                              RoleName = role.id.ToString()
                          }).ToList();
    

    【讨论】:

      【解决方案2】:

      1.尝试在 Microsoft SQL Server Management Studio 中调试此数据库模型。

      如果语法有问题,SSMS 应该验证它。

      2.检查用户是否有多个角色。

      通常,问题不在于语法,而在于人类对预测值的想法。

      3.慢慢走,从塔底创建选择。

      仅从角色中选择值。如果它是正确的,那么尝试去更高的水平。具有 user_roles 的角色。然后角色与 user_roles 与用户。也许您的数据库中的值有问题

      【讨论】:

        猜你喜欢
        • 2011-09-19
        • 2021-05-18
        • 1970-01-01
        • 1970-01-01
        • 2018-12-29
        • 1970-01-01
        • 2020-09-15
        • 2011-03-13
        • 1970-01-01
        相关资源
        最近更新 更多