Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按子女数(包括此数)查询顶级家长的Linq_C#_Linq_Entity Framework Core - Fatal编程技术网

C# 按子女数(包括此数)查询顶级家长的Linq

C# 按子女数(包括此数)查询顶级家长的Linq,c#,linq,entity-framework-core,C#,Linq,Entity Framework Core,在我的模型中,通过表ArticleTag在多对多关系中有实体Article和Tag。 我想选择“趋势标签”-标签与大多数文章在过去的X天,我想要这个计数 基本上,我需要帮助创建等效于此SQL查询的EF Linq查询,理想结果是Dictionary 这可以在DbContext中不使用ArticleTag作为DbSet的情况下完成(因为它不是一个实体,除了这个查询之外,我不需要它)。您必须为这个查询使用导航属性,并且不需要知道任何关于ArticleTag表的信息 var查询= 来自ctx.Artic

在我的模型中,通过表
ArticleTag
在多对多关系中有实体
Article
Tag
。 我想选择“趋势标签”-标签与大多数文章在过去的X天,我想要这个计数

基本上,我需要帮助创建等效于此SQL查询的EF Linq查询,理想结果是
Dictionary


这可以在DbContext中不使用
ArticleTag
作为
DbSet
的情况下完成(因为它不是一个实体,除了这个查询之外,我不需要它)。

您必须为这个查询使用导航属性,并且不需要知道任何关于
ArticleTag
表的信息

var查询=
来自ctx.Articles中的a
来自a.标签中的t
其中a.DateCreated>someDate
按新的{t.Id,t.Name}将t分组到g中
orderby g.Count()降序
选择新的
{
g、 密钥Id,
g、 键。名称,
Count=g.Count()
};
var结果=查询
.Take(50)
.ToDictionary(x=>newtag{Id=x.Id,Name=x.Name},x=>x.Count);

您必须为此查询使用导航属性,并且不需要了解有关
ArticleTag
表的任何信息

var查询=
来自ctx.Articles中的a
来自a.标签中的t
其中a.DateCreated>someDate
按新的{t.Id,t.Name}将t分组到g中
orderby g.Count()降序
选择新的
{
g、 密钥Id,
g、 键。名称,
Count=g.Count()
};
var结果=查询
.Take(50)
.ToDictionary(x=>newtag{Id=x.Id,Name=x.Name},x=>x.Count);

5之前的所有EF Core版本都需要多对多表的实体。您使用的是哪个版本?在5之前的所有EF核心版本中都添加了多对多,多对多表需要一个实体。您使用的是哪个版本?添加多对多允许多对多关系而不映射
ArticleTag
允许多对多关系而不映射
ArticleTag
SELECT TOP 50
    t.Id, t.Name, count(*)
FROM ArticleTag at
JOIN Article a ON a.Id = at.ArticleId
JOIN Tag t ON t.Id = at.TagId
WHERE a.DateCreated > '2019-10-01'
GROUP BY t.Id, t.Name
ORDER BY count(*) DESC