查询或合并一对多关系而不复制结果条目
Posted
技术标签:
【中文标题】查询或合并一对多关系而不复制结果条目【英文标题】:Querying or Merging One-to-Many Relationship without Duplicating Entries of the Result 【发布时间】:2019-01-28 03:13:15 【问题描述】:我有 2 个非常大的数据集。第一个“主表”是一个唯一的列表。第二个“参考表”与“主表”是一对多的关系。
目标: 使用过滤器查询两个数据集,但显示结果而不复制“主表”的条目。我不希望用户仅仅因为一对多“参考表”的字段是高度唯一的而滚动浏览同一行项目的 200 行。
有什么技术可以解决这个问题吗?
我能想到的只是将“参考表”的行作为列顺序附加到“主表”中,例如; a_1、b_1、a_2、b_2、...
以下是数据集的示例: data
我正在使用 C#、ASP.NET、SQL Server 2016、实体框架
【问题讨论】:
如果您需要以表格格式显示此数据,那么您可以使用父表和子表,其中主表数据显示在父表中,并且每一行都有一个图标来展开/折叠数据,一旦用户展开该行然后子表将被加载它的参考记录...datatables.net/examples/api/row_details.html 太好了,谢谢 【参考方案1】:您可以通过将查询分成两部分来获得很多功能:
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: ... , ... ]
,
...,
]
【讨论】:
如果你接下来解释你想如何使用数据,我可以详细说明如何操作数据 您能否查看***.com/questions/52141824/… 以获取有关数据/逻辑的更多详细信息。我认为您在这里的回答与这个问题有关。 问题被删除了? 我暂时解决了这个问题。请检查这个:***.com/questions/52324549/…以上是关于查询或合并一对多关系而不复制结果条目的主要内容,如果未能解决你的问题,请参考以下文章