我有一个应用程序,允许您关注人们的博客更新。我有一个页面,用户可以选择要关注的人。可以被跟踪的人存储在db(表名 - Person)中,当用户选择要跟随的人时,也存储在db(表名 - 后续)中。
我遇到的问题是当用户重新访问该页面以跟随另一个人时,查询数据库的最佳方式是什么,只显示用户未关注的人。
我正在使用实体框架。
我有以下工作。我需要一个where语句。 followBloggers
正在返回用户关注的博客列表,Uow.People.GetPeople()
正在返回所有博主。
var followedBloggers = Uow.FollowBlogger.GetLinks(companyId).ToList();
return Uow.People.GetPeople().Select(p => new { p });
答案 0 :(得分:3)
您可以使用以下内容:
var AlreadyFollowed = currentUser.followBloggers.Select( f => f.Id);
Uow.People.GetPeople().Where( p => !AlreadyFollowed.Contains(p.Id));
答案 1 :(得分:2)
试试这个(假设以下人员对PersonID的人有FK):
var followedIDs = user.followBloggers.Select(follow => follow.PersonID);
return Uow.People.GetPeople().Where(p => !followedIDs.Contains(p.PersonID));