我有两个数据表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显示这样的结果。 (休假不给两个病假,休假但可能是三个或两个或四个依赖于数据库,它的名字也可能是根据数据库的变化)
如果有人有想法请指导我
答案 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?