IDが別のテーブルに表示されている場合にのみ人を選択するにはどうすればよいですか?

entity-framework linq
IDが別のテーブルに表示されている場合にのみ人を選択するにはどうすればよいですか?

次のLINQステートメントでは、IDが別のテーブル(結合テーブル)に表示される場合にのみ、ユーザーを選択しようとしています。 何が足りないの?

この例では、PeopleテーブルとContractorsテーブルがあります。 PersonのcontactIdは、Contractorsテーブルに表示される場合があります。 Contractorsテーブルに表示されるPeopleのcontactIdを取得します。

var allPeople = People.Where(x => x.Contractors
                                   .Where(m=> m.ContactID == x.ContactID)
                                  .Select(x => x.ContactID));

  0  0


ベストアンサー

通常のLINQ JOINステートメントはどうですか:

var peopleWithContact = People.Join(
    Contractors,
    p => p.ContactId, // the field to join by from People table
    c => c.ContactId, // the field to join by from Contractors table
    (p, c) => p.ContactId); // the result if match; could be just p.

1


`Where`関数はブール式を返す必要があります。 私があなたの質問を正しく理解していれば、請負業者のテーブルにもある人々のテーブルの人だけが欲しいでしょう。 それから私達はちょうどそれを尋ねることができます:請負業者がそのIDを持っている場合私に人を与えて下さい:

var allPeople = People.Where(x => x.Contractors
                                   .Any(m => m.ContactID == x.ContactID));

0


タイトルとURLをコピーしました