如何在查询中包含计数的属性以及如何在c#

时间:2019-04-25 15:42:00

标签: c# linq asp.net-core entity-framework-core

使用Entity Framework-core,我需要从ASP.NET项目中的表中选择属性,并获取计数的属性并将其重命名为查询结果。 下面是我的查询代码

var result = _context.Subjects.Include(s => s.Course).Include(t => t.Topics);
        return View(await result.ToListAsync());

在我的结果中,我只需要计算每个主题的主题数,而不是整个主题列,我想将其重命名为结果表的Covered_topics。因此,我需要类似t => t.Topics.Count no_of_topics

我正在运行ASP.NET-Core 2.2

请我不知道该如何实现。我需要帮助。 谢谢您的指导!

1 个答案:

答案 0 :(得分:1)

您可以从查询中Select新建一个DTO,如下所示:

public class TopicDTO()
{
    public int NumberOfTopics { get; set; }
}

然后在您的查询中

var result = _context.Subjects
                     .Include(s => s.Course)
                     .Include(t => t.Topics)
                     .Select(x => new TopicDTO() 
                      {
                          NumberOfTopics = x.Topics.Count()
                      });

return View(await result.ToListAsync());