簡體   English   中英

C# 實體框架查詢結果不正確

[英]C# Entity framework incorrect query result

我在 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;
    }

有問題的表連接如下: 在此處輸入圖像描述

每個屬性都接收到正確的數據,除了“角色”表,它總是獲取表中的最后一條記錄。 請幫忙,可能是什么原因?

我認為你應該加入表格。

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();

1.嘗試在Microsoft SQL Server Management Studio中調試這個數據庫model。

如果語法有問題,SSMS 應該對其進行驗證。

2. 檢查用戶是否有多個角色。

通常,問題不在於語法,而在於人類對預測值的想法。

3.慢慢走,從塔底創建select。

Select 值僅來自角色。 如果正確,請嘗試 go 上層。 具有 user_roles 的角色。 然后角色與 user_roles 與用戶。 也許您的數據庫中的值有問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM