【问题标题】:Most efficient way to query a database and then remove entries from returned items查询数据库然后从返回的项目中删除条目的最有效方法
【发布时间】:2012-12-29 00:26:36
【问题描述】:

我有一个应用程序,可让您关注人们的博客更新。我有一个页面,用户可以在其中选择要关注的人。可以关注的人存储在数据库中(表名 - 人员),当用户选择要关注的人时,也存储在数据库中(表名 - 关注)。

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

我正在使用实体框架。

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

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

【问题讨论】:

  • 您能否展示一下您的用户类中有哪些对象的代码?
  • @IronMan84 我更新了

标签: c# database entity-framework


【解决方案1】:

你可以这样使用:

var AlreadyFollowed = currentUser.followBloggers.Select( f => f.Id);
Uow.People.GetPeople().Where( p => !AlreadyFollowed.Contains(p.Id));

【讨论】:

  • 您好,感谢您的反馈。您能否查看更新并提出建议,我可以在哪里实施您的想法。谢谢
  • 现在我已经重新修改了我的答案,它现在与 IronMan84 所说的几乎相同
【解决方案2】:

试试这个(假设 Follow 对 PersonID 上的人有一个 FK):

var followedIDs = user.followBloggers.Select(follow => follow.PersonID);
return Uow.People.GetPeople().Where(p => !followedIDs.Contains(p.PersonID));

【讨论】:

    猜你喜欢
    • 2021-05-19
    • 2020-11-22
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2020-04-18
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多