如果以前有人回答过这个问题,请指出我;我找不到类似的东西。
我的情况:
- 1 数据网格视图
- 由绑定源绑定到从数据集 (EF) 的表 1 表
- 1 与表 2 有数据关系(一对一)
现在,我需要显示子关系中的一列或多列,同时保留从 ParentTable (=table1) 追加、更新和删除行的功能。
我尝试将绑定源指向 DataRelation,但是,这只显示一个表中的数据。作为另一种选择,我现在尝试使用表达式创建计算列,使用以下方法查找子数据:
[table1].Columns.Add("[columnname]", GetType(System.String), _
"Child([datarelation name]).[columnname from childtable]")
但是,此操作失败,并显示"无法解释位置 1 处的令牌'子'"。我想这是由于程序期望多个结果。所以,我的问题是:\
- 我是否可以将其更改为仅预期 1 个结果并报告此结果,以使新列报告子数据?
- 有没有我没有看到的最佳实践?
对子列的引用必须位于聚合函数中,因为子关系可能返回多行。如果父行映射到一个子行,则还可以使用一些聚合函数(如最小值、最大值、总和、平均值)来获得与列值本身相同的结果。例如,这将起作用:
[table1].Columns.Add("[columnname]", GetType(System.String), "Sum(Child([datarelation name]).[columnname from childtable])")