2017-12-08 8 views
0

私はOracle SQLを使用していましたが、私は現在空き時間にMVCアプリケーションを開発中です。私はINNER JOINラムダ式に執着した瞬間、SQLステートメントをC#ラムダ式に変換する方法はわかりませんが、この質問に類似した他の回答を見てきましたが、回答と詳細な説明はありませんステートメントを変換する方法。Oracle SQLインナー結合ステートメントをラムダ式に変換する方法C#

コード:

SELECT 
    t.name, t.description 
FROM 
    TOPICS t 
INNER JOIN 
    TOPIC_SUBSCRIPTIONS 
     ON 
    t.TOPICID = TOPIC_SUBSCRIPTIONS.TOPICID 
WHERE 
    TOPIC_SUBSCRIPTIONS.MEMBERID = 96; 

答えて

0

解決方法1:

var q = db.Topics 
      .SelectMany(t => t.TopicSubscriptions, (t, ts) => new { t, ts }) 
      .Where(sub => sub.ts.MemberId == 96) 
      .Select(sub => new { sub.t.Name, sub.t.Description }); 

または使用してLINQスタイル

var q = from t in db.Topics 
     from ts in topic.Subscriptions 
     where ts.MemberId == 96 
     select new { t.Name, t.Description }; 

ソリューション2

var q = from t in db.Topics 
     join ts in db.TopicSubscriptions on t.TopicId equals ts.TopicId 
     into ij 
     from tsub in ij 
     where tsub.MemberId == 96 
     select new { t.Name, t.Description}; 
関連する問題