我有一个使用带有Entity Framework和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)但我总是遇到问题,因为我不知道会有多少字段。
另一个重要因素是这些数据需要是可编辑的,因此当用户更新某个值时,我需要有一些方法来确定正在编辑原始表的哪一行。
有人有什么想法吗?