基于用户选择列的表上的通用交叉连接

时间:2013-02-13 08:25:43

标签: c# linq generics lambda

我需要在数据库中的表列上执行交叉连接。我使用linq和C#来做到这一点。这是我写的代码:

var res = (from item_1 in set1
           join item_2 in set_2 on new
           {
               item_1.columnA,
               item_1.columnB,
               item_1.columnC,
               item_1.columnD,
               item_1.columnE,
               //etc...
           }
           equals new
           {
               item_2.columnA,
               item_2.columnB,
               item_2.columnC,
               item_2.columnD,
               item_2.columnE,
               //etc...
           }
           select new { item_1,item_2};

我有一个asp.net页面,用户可以在其中选择要执行交叉连接的列。查询应该反映他们的选择。有些用户只希望使用其中2列,而其他用户则会选择10。

我显然不想在某些switch语句中重复此查询并包含所选列。如果有一种通用的方法,我会徘徊。传递一个lambda表达式...我只是不确定应该怎么做。 任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

请看一下Scott Gu关于Dynamic LinQ的这篇博文。

它不仅包含对此事的解释,还提供了下载链接和示例。希望这有帮助!