查询数据库然后从返回的项目中删除条目的最有效方法

时间:2012-12-28 15:22:39

标签: c# database entity-framework

我有一个应用程序,允许您关注人们的博客更新。我有一个页面,用户可以选择要关注的人。可以被跟踪的人存储在db(表名 - Person)中,当用户选择要跟随的人时,也存储在db(表名 - 后续)中。

我遇到的问题是当用户重新访问该页面以跟随另一个人时,查询数据库的最佳方式是什么,只显示用户未关注的人。

我正在使用实体框架。

我有以下工作。我需要一个where语句。 followBloggers正在返回用户关注的博客列表,Uow.People.GetPeople()正在返回所有博主。

var followedBloggers = Uow.FollowBlogger.GetLinks(companyId).ToList();
return Uow.People.GetPeople().Select(p => new { p });

2 个答案:

答案 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));