我正在尝试使用涉及父/子关系 (1:n) 的表的选择语句来生成自定义实体。我尝试对选定的对象进行分组,但在想出解决方案时遇到了麻烦。
我的数据将是这种格式:
ParentTable
Userid | Col1 | Col2 | ... | Coln
ChildTable:
Id | Userid | Col1 | Col2 | ... | Coln
我试图产生的结果对象是这样的:
Custom { UserID, IEnumerable<ChildTable> }
我写了一个查询:
from parent in db.ParentTable
join child in db.ChildTable on new { Userid = parent.Id } equals new { Userid = child.Userid } into child_join
from child in child_join.DefaultIfEmpty()
where
child.Col1 == Argument1 &&
child.Col2 == Argument2
select new {
Username = parent.Username,
child.Col1,
child.Col2,
child.Col3,
child.Coln
}
这将返回这个结果:
Username | Child Col1 | Child Col2 | Child Col3 | .. |Child Coln
asdf 1 11 22 .. 33
asdf 2 22 33 .. 44
asdf 3 33 44 .. 55
qwer 4 44 55 .. 66
qwer 5 55 66 .. 77
qwer 6 66 77 .. 88
zxcv 7 77 88 .. 99
zxcv 8 88 99 .. 00
我想实现这一点:
Username | IEnumerable<Child>
asdf | {{1 11 22 .. 33}
| {2 22 33 .. 44}
| {3 33 44 .. 55}}
qwer | {{4 44 55 .. 66}
| {5 55 66 .. 77}
| {6 66 77 .. 88}}
zxcv | {{7 77 88 .. 99}
{8 88 99 .. 00}}
我正在尝试按用户名对项目进行分组,并以 Custom { UserID, IEnumerable } 的形式生成一个自定义对象,一旦完成,我就可以在其中序列化对象。任何帮助表示赞赏。编辑:关于数据结构,由于我正在连接到第 3 方系统,因此无法更改它,因此我正在使用给定的内容。