2017-12-08 1 views
0

저는 오랫동안 Oracle SQL을 사용해 왔으며 현재 여가 시간에 MVC 응용 프로그램을 개발 중입니다. 내가 INNER JOIN 람다 표현식에 머물러있는 순간, 나는 C# lambda 표현식으로 SQL 문을 변환하는 방법을 모르고,이 질문과 비슷한 다른 대답을 살펴 보았지만 답변과 자세한 설명은 제공하지 않습니다. 문을 변환하는 방법.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}; 
관련 문제