我有一个项目使用带有实体框架和 VB.Net 的 SQLite 数据库。数据库很复杂,但一切都设置得很好,可以访问各个表中的数据。
我需要的是一种方法来转换(透视?)来自两个或多个表的数据并获得一个结果表,其中的列是根据原始表中的数据动态生成的。例如,如果我从两个看起来像这样的表开始:
Table 1
Id Data Field
1 17 1
1 34 2
1 72 3
2 23 1
2 11 2
2 46 3
3 1 1
3 19 2
3 24 3
Table 2
Id Data Field
1 abc 4
1 def 5
1 ghi 6
2 jkl 4
2 mno 5
2 pqr 6
3 stu 4
3 vwx 5
3 yz 6
我需要最终得到以下结果表:
Id Field1 Field2 Field3 Field4 Field5 Field6
1 17 34 72 abc def ghi
2 23 11 46 jkl mno pqr
3 1 19 24 stu vwx yz
很明显,简化了,但我希望总体布局清晰。在设计时,我不知道会有多少字段(以及结果合并表中的列)。但是,我知道表 1 中的所有数据都是数字,表 2 中的所有数据都是文本。
显然,我可以遍历数据并在代码中动态构造一个 DataTable,但我试图找出是否有更有效的方法来完成它,它可以与数据绑定到数据网格一起使用。我尝试了各种 LINQ 连接(使用 System.Linq.Dynamic),但我总是遇到问题,因为我不知道会有多少字段。
另一个重要因素是这些数据需要是可编辑的,所以当用户更新一个值时,我需要有一些方法来确定正在编辑哪个原始表中的哪一行。
有人有什么想法吗?