首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linq join,group by以获取子表的计数

linq join,group by以获取子表的计数
EN

Stack Overflow用户
提问于 2014-04-08 15:24:39
回答 1查看 120关注 0票数 0

在我的加入开始工作后,我似乎被计时卡住了。我在下面尝试的是根据下面的连接来获取打印的文档的计数。获取每个“guardiandocsrequired”的计数的代码是什么?

代码语言:javascript
复制
var guardianEntityType = new {EntityTypeFK = "GUARDIAN"};

return (from d in dbContext.GuardianDocsRequireds
        join p in dbContext.DocumentPrintingLogs on
        new { docTypeFK = d.DocTypeFK, entityFK = d.GuardianFK } equals
        new { docTypeFK = p.DocTypeFK, entityFK = p.EntityFK }
        where d.GuardianFK == entityPK && p.ItemGroupFK == itemGroupID && p.EntityTypeFK == "GUARDIAN"
        group d by new
        {
            d.GuardianFK,
            d.DocTypeFK,
            d.DocumentType.DocTypeDescription,
            d.RequiredStatus
        }
            into res
            select new DocumentsRequired
            {
                EntityPK = res.Key.GuardianFK,
                EntityType = entityType,
                DocTypeFK = res.Key.DocTypeFK,
                DocTypeDescription = res.Key.DocTypeDescription,
                RequiredStatus = res.Key.RequiredStatus,
                PrintCount = ???
            }
        ).ToList();

如果有帮助,我已经编写了sql来精确地生成我所需的内容,如下所示:

代码语言:javascript
复制
    SELECT gdr.DocRequiredID,gdr.RequiredDate,gdr.GuardianFK,gdr.DocTypeFK,gdr.RequiredStatus,
COUNT(dpl.DocPrintedID) AS documentsPrinted
        FROM dbo.GuardianDocsRequired gdr
        LEFT OUTER JOIN dbo.DocumentPrintingLog dpl ON gdr.DocTypeFK = dpl.DocTypeFK
            AND gdr.GuardianFK = dpl.EntityFK
            AND dpl.EntityTypeFK = 'GUARDIAN'
        WHERE gdr.GuardianFK = @entityPK
        GROUP BY gdr.DocRequiredID,gdr.RequiredDate,gdr.GuardianFK,gdr.DocTypeFK,gdr.RequiredStatus
EN

回答 1

Stack Overflow用户

发布于 2014-04-08 15:33:19

你是说像这样的东西吗?

代码语言:javascript
复制
var guardiandocsrequired =  (from d in dbContext.GuardianDocsRequireds
                            join p in dbContext.DocumentPrintingLogs on
                            new { docTypeFK = d.DocTypeFK, entityFK = d.GuardianFK } equals
                            new { docTypeFK = p.DocTypeFK, entityFK = p.EntityFK }
                            where d.GuardianFK == entityPK && p.ItemGroupFK == itemGroupID && p.EntityTypeFK == "GUARDIAN"
                            group d by new
                            {
                                d.GuardianFK,
                                d.DocTypeFK,
                                d.DocumentType.DocTypeDescription,
                                d.RequiredStatus
                            }
                                into res
                                select new DocumentsRequired
                                {
                                    EntityPK = res.Key.GuardianFK,
                                    EntityType = entityType,
                                    DocTypeFK = res.Key.DocTypeFK,
                                    DocTypeDescription = res.Key.DocTypeDescription,
                                    RequiredStatus = res.Key.RequiredStatus,
                                    PrintCount = ???
                                }
                            ).ToList();

int cnt = guardiandocsrequired.Count;

return guardiandocsrequired;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22930278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档