2017-03-14 11 views
0

hello stackoverflow community、スタックオーバーフローに関する私の最初の質問です。事前に助けてくれてありがとう。 2つのテーブルを結合するのを助けてください。1つのテーブルにプライマリキーとしてのIDを持つ特別なリストがあり、2つ目のテーブルには3つのカラムに外部キーとしての専門IDが含まれています。あなたはこれが動作するプロバイダのための専門家のデータを返すようにしたい場合は私のコードlinqを使用して複数のカラムを1つの外部キーで結合する方法

var q = (from u in db.Providers 
         join v in db.PracticeSpeciality 
         on new { p1 = u.prSpecId1, p2 = u.prSpecId2, p3 = u.prSpecId3 } 
         equals new { p1 = v.pracSpecId, p2 = v.pracSpecId, p3 = v.pracSpecId } 
         where (u.prId == pc.stprId) 
         select new 
         { 
          u.prFname, 
          u.prLname, 
          u.prMI, 
          u.prTitle, 
          v. 
         }).FirstOrDefault(); 
+1

リンクされたイメージではなく、質問の本文にコードを配置した方がよいでしょう。私は誰もあなたのクエリを書き換える時間を取るつもりはないと思う - コピー/貼り付けftw。 – sleeyuen

+0

あなたのコードをさらに調べたら、where句で参照したエンティティ 'pc'は何ですか?おそらくこれは問題の一部ですか? – sleeyuen

+0

ガイダンス@sleeyuenありがとう – usmanali

答えて

0

var q = (from prov in providers 
      join esp1 in praEspec on prov.prSpecId1 equals esp1.pracSpecId 
      join esp2 in praEspec on prov.prSpecId2 equals esp2.pracSpecId 
      join esp3 in praEspec on prov.prSpecId3 equals esp3.pracSpecId 
      where prov.prId == pc.stprId 
      select new 
      { 
      esp1, 
      esp2, 
      esp3 
      }).FirstOrDefault(); 
関連する問題