【发布时间】:2014-07-30 13:28:37
【问题描述】:
我需要什么
登录的用户需要一个与用户链接/注册的项目相关的所有错误的列表。
我的尝试
我在表示层的三层(表示 - BLL - DALL)中工作,我可以发送 pk_user_id。我尝试编写一个 Linq 查询,返回所有错误的列表。我不知道如何返回该列表。
我对 Linq 查询很陌生,所以我想这是我的问题。 (我知道我需要在最后归还我的清单,但如果我能做到这一点,我会很高兴。
我拥有的所有信息
我有一个包含九个表的数据库,但只有四个代表我的问题 [错误]、[用户]、[UsersOnProjects]、[项目]。
我的关系
[Users].pk_users_id -> [UsersOnsProjects].fk_users
[Users].pk_users_id -> [Bugs].fk_creatorOfTheBug
[Users].pk_users_id -> [Bugs].fk_ResponsibleOfTheBug
[Projects].pk_projects_id -> [UsersOnProjects].fk_projects
[Projects].pk_projects_id -> [Bugs].fk_project
其他信息
我“认为”我无法对表 [Users] 与 [Bugs] 的关系做任何事情,因为它不是我需要的负责人或创建者。登录的用户需要查看与他注册的项目相关联的每个 Bug。
一个用户通过表 [UsersOnPojects] 链接到一个项目。 一个错误链接到一个项目。
**我的代码 - 1(我收到一个错误,我无法将查询转换为列表)**
public List<Bug> getAllOnProject(int p_user)
{
var query4 = from t in dc.Bugs
join s in dc.Projects
on t.fk_project equals s.pk_project_id
join u in dc.Users
on s.pk_project_id equals u.fk_project
join v in dc.Users
on u.fk_user equals v.pk_User_id
where v.pk_User_id == p_user
select new
{
t.fk_bugstatus,
t.fk_creator,
t.pk_bug_id,
t.title,
t.description,
t.date,
t.fk_priority,
t.fk_project,
t.fk_responsible,
t.openclosed
};
}
我的代码尝试 nr 2(这里我有一个列表,其中包含 [UsersOnProjects] 中的所有“正确”行,但我不知道下一步该做什么)
public List<Bug> getAllOnProject(int p_user)
{
var query1 = from t in dc.UsersOnProjects
where t.fk_user == p_user
select t;
List<UsersOnProject> x = query1.ToList();
foreach (var c in x)
{
}
}
谢谢!
【问题讨论】:
-
在 linq 查询末尾添加 ToList()。
-
那是怎么编译的?
getAllOnProject不返回值... -
UsersOnProjects是类模型的一部分,还是您在 User 和 Project 之间建立了纯粹的多对多关联? (即属性User.Projects和Project.Users)。