如何在LINQ中为动态列连接两个数据表

时间:2013-08-06 07:42:23

标签: linq entity-framework

我有两个数据表dt1和dt2(在运行时生成),我必须在此表上应用内连接查询。(两个表中的EmpId相同)

但是coloumns和它们的名称是动态的,这取决于数据库。

两个表都包含相同的coloumn名称,如表1中的coloumn这个表包含员工休假" p" 。他没有采取任何镰刀,所以价值是无效的。

EmpId Empname SickLeave Casual Leave  
1       P                   1

和表格2具有类似

的值
 EmpId Empname  SickLeave Casual Leave  
    1       P       5           5

此表包含由员工给予员工的总休假(最长休假)

我必须加入此查询并显示此结果

 EmpId Empname  SickLeave Casual Leave  
  1       P       0/5          1/5

所以我想知道我如何加入这两个数据并使用Ef和LINQ显示这样的结果。 (休假不给两个病假,休假但可能是三个或两个或四个依赖于数据库,它的名字也可能是根据数据库的变化)

如果有人有想法请指导我

1 个答案:

答案 0 :(得分:0)

如果你真的需要动态Linq到实体那么

选项A)字符串到lambda

LINQ中的动态表达式和查询 可以在以下链接中找到System.Linq.Dynamic http://msdn.microsoft.com/en-US/vstudio/bb894665.aspx http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx http://www.scottgu.com/blogposts/dynquery/dynamiclinqcsharp.zip How to convert a String to its equivalent LINQ Expression Tree?

选项B)构建表达式树

更彻底的方法是构建表达式树。使用此处的代码构建表达式树: http://msdn.microsoft.com/en-us/library/system.linq.expressions.aspx Dynamic LINQ and Dynamic Lambda expressions?