我正在尝试获取 3 篇相关文章,这些文章具有与主要文章相同的大多数标签。 我有这个数据库结构:
当我获取主要文章时,我会获取与该文章相关的标签。然后,我将文章的 IDArticle 和 TagList 传递给函数以获取相关的 3 篇文章。
在文章和标签之间充当粘合剂的列表是 ArticoloTag,我认为这是一个列表,用于检查具有最多重复标签的文章。
显然我认为在服务器端用 c# 开发这个算法更好。如何使用 linq 执行此操作?
感谢帮助
最佳答案
为了找到具有最多共同标签的前 3 篇文章,您可以使用 ArticoloTag
并将其加入 IdTag
linq 看起来像这样:
ArticoloTag.Where (a=>a.IdArticolo== mainArticleId).Join(ArticoloTag, a=>a.IdTag, a=>a.IdTag, (a,b)=> b.IdArticolo).GroupBy(a=>a.IdArticolo).OrderBy(g=>g.Count()).Select(g => g.Key).Take(3)
这将取回您的 3 IdArticle。
您可以向 Articolo
表添加一个连接以获取实际的文章
关于c# - 按元素选择最重复的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41953601/