我有一个包含主键和行键列的表。数据如下所示。数据已加载到作为集合的表中。
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
对我如何做到这一点的任何建议都将非常感激。
答案 0 :(得分: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)
}
很抱歉,我现在没有可用的视觉工作室,但这应该会给你一个很好的开始。
答案 1 :(得分:0)
如果报告变得越来越复杂,只需在SQL Server中创建一个视图并使用LINQ读取视图 - 它就容易多了!