C# Entity framework 错误的查询结果
C# Entity framework incorrect query result
我在 C# 中使用 entity framework,代码如下。
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;
}
有问题的table连接如下:
除“角色”table 外,每个 属性 都收到正确的数据,它总是获得 table 中的最后一条记录。求助,请问是什么原因?
我认为你应该加入表格。
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 中调试此数据库模型。
如果语法有问题,SSMS 应该对其进行验证。
2。检查用户是否有不止一种角色。
通常,问题不在于语法,而不在于人类对预测值的想法。
3。慢慢走,从塔底创造select
Select 值仅来自角色。如果它是正确的,那么尝试去上层。 user_roles 的角色。然后角色与用户 user_roles 。也许你的数据库中的值有问题
我在 C# 中使用 entity framework,代码如下。
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;
}
有问题的table连接如下:
除“角色”table 外,每个 属性 都收到正确的数据,它总是获得 table 中的最后一条记录。求助,请问是什么原因?
我认为你应该加入表格。
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 中调试此数据库模型。
如果语法有问题,SSMS 应该对其进行验证。
2。检查用户是否有不止一种角色。
通常,问题不在于语法,而不在于人类对预测值的想法。
3。慢慢走,从塔底创造select
Select 值仅来自角色。如果它是正确的,那么尝试去上层。 user_roles 的角色。然后角色与用户 user_roles 。也许你的数据库中的值有问题