使用示例

var items = msDb.CrmWxWorkMoments
    .Where(m => m.CreateType == CrmWxWorkMomentCreateType.个人)
    .Where(m => m.CreateTime.Date == args.CreateDate)
    .GroupBy(m => new
    {
        m.EmployeeWxWork.DDUserId,
        m.EmployeeWxWork.DDUser.DDUserName,
        m.EmployeeWxWork.DDUser.StoreId,
        m.EmployeeWxWork.DDUser.StoreName
    }, (k, g) => new CountEmployeePublishForDayRowItem
    {
        DDUserId = k.DDUserId,
        DDUserName = k.DDUserName,
        StoreId = k.StoreId,
        StoreName = k.StoreName,
        PublicCount = g.Sum(x => x.VisibleType == CrmWxWorkMomentVisibleType.公开 ? 1 : 0),
        PrivateCount = g.Sum(x => x.VisibleType == CrmWxWorkMomentVisibleType.部分可见 ? 1 : 0)
    })
    .ToList();


注意点

g.Sum 这里 不能使用 g.Count,否则会提示重复的语句

这里也不难理解,因为sql中count不能够带参数


引申一下

在不了解完整ef语法时,尽量的以写sql的思路进行