如何使用LINQ创建汇总报表?

本文关键字:报表 创建 何使用 LINQ | 更新日期: 2023-09-27 18:15:57

我有一个包含主键和行键列的表。数据如下所示。数据已经加载到作为集合的表中。

Primary Key    Row Key
01000100001  000001 - Subject ID=1, Book ID=1, Chapter ID=1 and Page ID=1
01000100001  000002 - Subject ID=1, Book ID=1, Chapter ID=1 and Page ID=2
01000100001  000003 - Subject ID=1, Book ID=1, Chapter ID=1 and Page ID=3
01000100002  000004 - Subject ID=1, Book ID=1, Chapter ID=2 and Page ID=4
01000100002  000005 - Subject ID=1, Book ID=1, Chapter ID=2 and Page ID=5
01000100002  000006 - Subject ID=1, Book ID=1, Chapter ID=2 and Page ID=6
01000200003  000007 - Subject ID=1, Book ID=2, Chapter ID=3 and Page ID=7
01000200003  000008 - Subject ID=1, Book ID=2, Chapter ID=3 and Page ID=8
02000300004  000009 - Subject ID=2, Book ID=3, Chapter ID=4 and Page ID=9
02000300005  000010 - Subject ID=2, Book ID=3, Chapter ID=5 and Page ID=10

集合类名为Pages,包含一个名为PrimaryKey的列,该列由以下内容组成:

2 column Subject ID
4 column Book ID
4 column Chapter ID

我需要创建一个报告,看起来像下面的东西,我想知道如果以及如何我可以创建一个查询与LINQ。

Subject  Books  Chapters      Pages
01         2         3           8
02         1         2           2

如何使用LINQ创建汇总报表?

如果您有什么建议,我将不胜感激。

您可以使用group by和sum特性,linq查询将看起来像这样:

from page in pages
group page by new { 
                    page.subjectId
                    , page.bookId
                    , page.chapterId 
                 } into group
select new {
             group.key.SubjectId
             , group.key.bookId
             , group.Key.chapterId
             , total = pages.sum(s => s.Page)
}

很抱歉,我现在没有visual studio可用,但这应该会给你一个很好的开始。

如果报告变得更复杂,只需在SQL server中创建一个视图并使用LINQ读取视图-这要容易得多!