使用动态列合并两个或更多实体框架实体?

时间:2013-05-04 17:22:53

标签: .net vb.net linq entity-framework sqlite

我有一个使用带有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)但我总是遇到问题,因为我不知道会有多少字段。

另一个重要因素是这些数据需要是可编辑的,因此当用户更新某个值时,我需要有一些方法来确定正在编辑原始表的哪一行。

有人有什么想法吗?

0 个答案:

没有答案