当前位置: 代码迷 >> C# >> !关于LINQ选取两表关联的全部字段的有关问题
  详细解决方案

!关于LINQ选取两表关联的全部字段的有关问题

热度:142   发布时间:2016-05-05 05:24:56.0
求助!关于LINQ选取两表关联的全部字段的问题
先附上代码如下:

            DataTable dtN = new DataTable();
            DataSet ds = new DataSet();
            IEnumerable<DataRow> result =
                from c in dt2.AsEnumerable()
                join p in dt1.AsEnumerable()
                on new { ID = dt2.Columns[3], NAME = dt2.Columns[4], ACCOUNT = dt2.Columns[5], DATE = dt2.Columns[6], AMOUNT = dt2.Columns[7] }
                    equals new { ID = dt1.Columns[5], NAME = dt1.Columns[6], ACCOUNT = dt1.Columns[7], DATE = dt1.Columns[8], AMOUNT = dt1.Columns[9] }
                    into rightjoin
                from p in rightjoin.DefaultIfEmpty()
                select c;
            dtN = result.CopyToDataTable<DataRow>();

运行完上面代码,dtN输出表字段和dt2一样。按设计要求,我需要获取dt1和dt2进行右关联后的全部字段,请问我应该怎样修改上面的代码?还请各路大侠附上代码说明,小弟拜谢啦
------解决思路----------------------
select c 改为
select new {  
a=c.xxx,  
b=c.xxxx,  
c=c.xxxxx  
......
}; 

------解决思路----------------------
如果需要返回新类,就定义一个类,字段为你要查询出的所有字段。根据1楼方式,
select  new  newClass{
   c1 = c.xxx,
   p1 = p.xxx
}

如果不需要,1楼方式即可。
  相关解决方案