假设我有这样的SQL:

SELECT p.ParentId, COUNT(c.ChildId)
FROM ParentTable p
  LEFT OUTER JOIN ChildTable c ON p.ParentId = c.ChildParentId
GROUP BY p.ParentId

如何将其转换为LINQ到SQL?我被计数(c.ChildId)卡住了,生成的SQL似乎总是输出COUNT(*).以下是我目前得到的信息:

from p in context.ParentTable
join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1
from j2 in j1.DefaultIfEmpty()
group j2 by p.ParentId into grouped
select new { ParentId = grouped.Key, Count = grouped.Count() }

非常感谢.

推荐答案

from p in context.ParentTable
join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1
from j2 in j1.DefaultIfEmpty()
group j2 by p.ParentId into grouped
select new { ParentId = grouped.Key, Count = grouped.Count(t=>t.ChildId != null) }

.net相关问答推荐

.NET Blazor-使用子组件中的处理程序方法进行双向数据绑定

在PowerShell中,XML子对象和属性是对象属性.它怎麽工作?

通过交互服务器渲染模式和流渲染的组合防止双重渲染

CLR如何在后台优化布尔比较操作?

在 .NET 7 项目上设置 Sentry 时遇到问题

cmd 冻结中的 dotnet 命令.怎么了?

使用 Powershell TOM 在 SSAS 表格中创建分区

在 C# 中,如何使用泛型的基类将泛型接口的所有实例注入到单个构造函数中?

如何在选项卡中 Select Winforms NumericUpDown 中的所有文本?

将字符串与容差进行比较

NonSerialized 属性

SqlDateTime.MinValue != DateTime.MinValue,为什么?

在目录中创建应用程序快捷方式

Winforms:Application.Exit vs Environment.Exit vs Form.Close

参数命名:文件名还是文件名?

Dapper 是否支持 SQL 2008 表值参数?

什么是 C# 中的自动属性,它们的用途是什么?

.NET 进程间通信的最佳 Select 是什么?

无法加载文件或程序集System.ValueTuple

如何从其十六进制 RGB 字符串创建 System.Drawing.Color?