0

誰かがこれをラムダ式などに翻訳するのを手伝ってくれたら幸いです。

最初の紹介: 2 つのテーブル/オブジェクトがあります。

OFFICE 
{officeID,
 NAME,
 another data}

WORKER
{ID,
 officeID,
 NAME}

n 個のオフィスと m 個のワーカーがそれぞれに存在します。(正確な数字はわかりませんし、必要ありません)

そのような名前を持つワーカーが少なくとも 1 人いる場所をすべてWORKER NAME取得する必要があります。OFFICES

したがって、SQL は次のようになります。

SELECT * FROM OFFICE WHERE officeID = (SELECT officeID FROM WORKER where NAME='myName');

(たぶん別の可能性があります、私は確信していません)

ただ、ラムダ式と IQueryable を使用してOFFICES、型を使用して同じものを得るのを誰かが手伝ってくれませんか?WORKER

4

2 に答える 2

2

ナビゲーションプロパティを使用していますか?もしそうなら、あなたはそれらを利用して、以下の2つのクエリのいずれかを行うことができます:

context.Office.Where(o => o.Workers.Any(w => w.Name == "myName"));

また

context.Workers.Where(w => w.Name == "myName").Select(w => w.Office).Distinct();
于 2013-01-08T20:00:41.753 に答える
1

SQLクエリはJOINを使用する必要があります。

したがって、ラムダ式は次のようになります。

var result = (from o in context.Offices
              join w in context.Workers
              on o.officeID equals w.officeID
              where w.Name.Equals("myName")
              select o).AsQueryable<Office>();
于 2013-01-08T19:47:33.090 に答える