如何使用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
您可以使用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读取视图-这要容易得多!