EF6:如何将两个不同的 count() 查询合并为一个

本文关键字:一个 count 查询 合并 两个 EF6 | 更新日期: 2024-10-25 09:23:04

var filesCount = files.Where(f => f.ParentId == folderId).Count();
var foldersCount = folders.Where(f => f.ParentId == folderId).Count();

我的主要目标是将数据库的往返次数从两个减少到一个。

背景

  • .NET Framework 4.5.2
  • 实体框架 6

EF6:如何将两个不同的 count() 查询合并为一个

如果您有从文件夹到子文件夹以及从文件夹到文件的导航属性,则可以执行以下操作:

var result =
    folders
    .Where(x => x.Id == folderId)
    .Select(x => new
    {
        FolderCount = x.SubFolders.Count(),
        FileCount = x.Files.Count()
    })
    .FirstOrDefault();
相关文章: