首页 新闻 搜索 专区 学院

如何用 EF Core 实现下面的查询

0
悬赏园豆:50 [已解决问题] 解决于 2018-08-14 23:19

希望通过 EF Core 实现下面的查询

SELECT COUNT(*)
FROM Feed AS F
INNER JOIN
(
    SELECT FolloweeUserId
    FROM Relation
    WHERE UserId = @UserId AND IsActive = 1
) AS R ON F.UserID = R.FolloweeUserId
WHERE (F.IsActive = 1)

请问如何实现?

dudu的主页 dudu | 高人七级 | 园豆:38827
提问于:2018-08-14 13:44
< >
分享
最佳答案
0

可以把R里面的条件往外移,这样就是两表关联,然后条件过滤,然后再求数量

收获园豆:50
浅草青晨 | 小虾三级 |园豆:598 | 2018-08-14 15:09

这两种方式的执行计划是一样的

dudu | 园豆:38827 (高人七级) | 2018-08-14 17:22

@dudu: var x = _eagleContext.App.Join(_eagleContext.AppCalled.Where(d => d.Id > 0), a => a.Id, b => b.AppId, (a, b) => b).Where(c => c.Id > 0).LongCount();

 

不知道是不是你想要的结果

浅草青晨 | 园豆:598 (小虾三级) | 2018-08-14 19:14

@浅草青晨: 赞!搞定

q = feeds.Join(relations.Where(r => r.UserId == userId),
    f => f.UserId,
    r => r.FolloweeUserId,
    (f, r) => f);
dudu | 园豆:38827 (高人七级) | 2018-08-14 23:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册