如何将Oracle SQL内部联接语句转换为Lambda表达式C#

时间:2017-12-08 23:07:56

标签: sql asp.net oracle model-view-controller lambda

我已经使用Oracle SQL了一段时间,目前正在我的业余时间开发一个MVC应用程序。目前我坚持使用INNER JOIN lambda表达式,我不知道如何将SQL语句转换为C#lambda表达式,我已经看过类似这个问题的其他答案,但没有提供答案和详细如何转换语句的描述。

代码:

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

1 个答案:

答案 0 :(得分: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};