我有2个非常大的数据集。第一个“主表”是唯一列表。第二个“参考表”与“主表”是一对多的关系。
目标: 使用跨两个数据集的过滤器进行查询,但显示结果而无需重复“主表”的条目。我不希望用户仅在一对多“参考表”的字段中具有很高的唯一性即可滚动浏览同一订单项的200行。
有什么技巧可以解决这个问题?
我能想到的就是依次将“参考表”的行作为列追加到“主表”中,例如; a_1,b_1,a_2,b_2,...
以下是数据集的示例: data
我正在使用C#,ASP.NET,SQL Server 2016,实体框架
答案 0 :(得分:0)
通过将查询分为两部分,您可以获得很多功能:
using (MainContext ctx = new MainContext()) {
var rows = from main in ctx.Main
select new
{
Main = main,
References = from r in ctx.References
where r.Id == main.Id
select r
}
// Do something with your rows
}
这将向数据库发送一个查询,并在Main
中每行返回一个实体,具有单独的属性,该属性将包含该Main
行的所有元数据。
如果使用(例如)WebAPI调用将其发送回客户端,则客户端上的数据将如下所示:
[{
main: { id: ..., x: ..., y: ..., z: ...},
references: [{ a: ..., b: ... }, {a: ..., b: ... }, ... ]
},
...,
]