我已经使用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;
答案 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};