asp.net实体框架 - 具有join + Membership用户的复杂查询

时间:2013-01-15 13:23:45

标签: asp.net sql entity-framework

我有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上?

2 个答案:

答案 0 :(得分: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();

我认为这会对你有帮助.......

答案 1 :(得分:0)

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

from t in db.Tasks
where t.User.MainGroup == currentuserMainGroup
select new {t.Id, t.name.... , t.User.Name, ... }