2012-08-15 56 views
3

我有一种情况,目前我不确定如何继续。动态LINQ加入DataTable上的动态列

我有两个从数据库填充的数据表,我也有一个列名可用于将这两个数据表连接在一起。我希望编写一组LINQ查询:

  1. 显示两个数据表中的行(内部连接,用于彼此更新)。
  2. 显示另一个数据表中不存在的行(一个查询,用于插入的左连接,另一个用于删除的右连接)。

现在我知道如何使用普通的LINQ来处理对象或数据表,但是在这种情况下,我需要应用列动态加入,并且可能有多个列。看着下面的部分示例代码:

table1.AsEnumerable() 
.Join(table2.AsEnumerable(), 
    dr1 => dr1.Field<string>("ID"), 
    dr2 => dr2.Field<string>("ID"), 
    (dr1, dr2) => new 
    { 
     FieldID = dr1.Field<string>("ID"), 
     CdGroup = dr2.Field<string>("Name") 
    }) 

的问题是,我不知道该字段类型等都不能应用.Field<string>部分语句。此外,如果他们是多个连接列,那么我将需要有多个连接语句。

我已阅读动态LINQ,它似乎很有前途,但我还没有设法找到任何关于动态LINQ连接的信息,就像我试图做的那样。我知道我可能使用嵌套循环或数据表上的.Select()方法获得相同的结果,但我试图将LINQ应用于我需要的某些更棘手的查询。

有没有人有任何指示或例子,我可以如何实现这一目标,或者我应该只是恢复使用非LINQ方法?

非常感谢。

+0

你能否请一些虚拟/示例数据解释一点点。 – Abhishek 2012-09-12 11:28:38

回答