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 の Where という条件をどこに置くのでしょうか?

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 に答える