我有兩張表 - User和Follows。下表定義了兩個用戶,即關注的用戶和關注的用戶。想想接下來的Twitter這樣的想法。與朋友的朋友一起實現發現頁面
我想做一個建議的人物頁面。這將建議追隨者按照他們的感知相關性。
所以,如果我有個人A.
他跟隨人B和C
如果人B和C都遵循人·d,和某乙遵循人E.人·d應該拿出更高的相關性比E人等等。
有人可以幫助我構建一個查詢,儘可能以最快的方式做到這一點。考慮到有很多追隨者的潛力。
最終,我想要一個頁面說 - 看看這些人:約翰跟着你跟隨的4個人。
我的表
的樣品public class User
{
public long UserId { get; set; }
public string Name { get; set; }
}
public class Follow
{
public long FollowId { get; set; }
public User Follower { get; set; }
public User Following { get; set; }
}
編輯 - 當前查詢基於帕特里克麥當勞回答
var query = from follow in db.Follows
where follow.WhoIsFollowing == mee
let friend = follow.WhoTheyAreFollowing
from friendOfFriend in db.Follows
where friendOfFriend.WhoIsFollowing == friend
group friendOfFriend by friendOfFriend.WhoTheyAreFollowing into g
where g.Key != mee
select new { UserId = g.Key, Count = g.Count() };
驚人。到底是什麼我以後。我可以問一個簡短的問題嗎?我編輯了這篇文章,根據你的文章添加我使用過的文章,並且效果很好。但是有什麼機會可以幫助刪除登錄用戶所關注的人?目前,我運行該查詢,它隨用戶(登錄用戶)隨之而來,因此我將它們過濾掉 – MichaelMcCabe