C# 查询帮助:实体框架

C# 查询帮助:实体框架,c#,linq,entity-framework,C#,Linq,Entity Framework,我的数据库中有此表: ID userID MovieID Rank 1 1 1 9 2 1 2 9 3 1 3 9 4 2 1 9 5 2 2 10 我想查询它,以获得两个用户之间的相互电影,他们的评级相同 例如,在这种情况下,用户1和用户2都用“9”对movieID=1进行评级 所以我只想得到电

我的数据库中有此表:

ID    userID  MovieID  Rank
1      1        1        9
2      1        2        9
3      1        3        9
4      2        1        9
5      2        2        10
我想查询它,以获得两个用户之间的相互电影,他们的评级相同

例如,在这种情况下,用户1和用户2都用“9”对movieID=1进行评级

所以我只想得到电影1的结果

-更新-

所以我想出了这个感谢@RJ1990

SELECT        MovieID
FROM            LoverMovie
WHERE        (LoverID = 1) OR
                         (LoverID = 2)
GROUP BY MovieID
HAVING        (COUNT(*) > 1) AND (ABS(MAX(Rank) - MIN(Rank)) < 3)

这种查询可以用EF DbContext编写吗?

不清楚您尝试了什么,遇到了什么问题。但此查询返回具有多个投票权的电影:

from m in db.Movies // assume you have Movies table
join mr in db.MovieRates 
     on m.ID equals mr.MovieID into g // and MovieRates table
where g.Count() > 1
select m
或者,如果已定义导航属性:

db.Movies.Where(m => m.Rates.Count() > 1)
如果您还需要验证费率是否来自不同的用户,则使用.Selectx=>x.UserID.Distinct.Count>1代替.Count>1-此条件从费率中选择不同的用户ID。

方法:

从下面的查询中,您将获得具有多个类似评级的特定电影的MovieID、Rate和Rate_计数


试过什么吗?是的。事情进展不太顺利。谢谢。在回答之前先阅读问题。他需要实体框架的LINQ查询。SQL对他没有帮助。这对我也有帮助,我现在正试图弄清楚背后的逻辑,谢谢。@KobiBurnley行与行之间有实体框架吗?没有。LINQ查询会有帮助。但是,这可以帮助我理解LINQ查询。我还想有一种方法可以在EF中使用常规sql查询,我希望我没有错。@KobiBurnley和已经编写的LINQ查询有什么问题?
select MovieID,Rank,Count(*) Rate_Count
  from your_table
 group by MovieID,Rank
having Count(*) > 1