0

我有 2 张桌子。用户 - 拥有 userID、userMainGroup 和 userMinorGroup 任务 - TaskId、UserId

我的目标是:我有当前的 CurrentuserId,我想向他展示由与他相同的 MainGroup 的用户创建的所有任务。

在 SQL 中,我会写:

Select *
From Tasks Left join Users on tasks.Id=users.id
Where users.MainGroup=CurrentuserMainGroup; (var)

我如何使用实体框架来做到这一点?

我知道要加入,我需要编写如下内容:

var tasks = from t in db.tasks
            from u in db.users
            where t.Id=u.Id
            select new {t.Id, t.name....}

但是我在哪里将条件放在 MainGroup 上?

4

2 回答 2

0

建议您使用导航属性而不是手动编码的联接:

from t in db.Tasks
where t.User.MainGroup == currentuserMainGroup
select new {t.Id, t.name.... , t.User.Name, ... }
于 2013-01-15T14:03:07.990 回答
0

你可以试试这样

var data= (from con in db.tasks
          let UserMainGroup = db.users.where(x=>x.id==con.id).FirstOrDefault()
          where  UserMainGroup.MainGroup=CurrentuserMainGroup
          select new {
          ID=con.id,
          Name=con.name
          }).ToList();

我想这会对你有所帮助.......

于 2013-01-15T13:35:08.267 回答