2013-02-21 35 views
-3

我有我的数据集3个表LINQ到完全外连接多个表的数据集

表0,1,2具有ID1,ID2,共同ID3列分别

我怎样才能完全外部联接他们?

我见过堆栈溢出中提出的许多问题,但他们只处理2个表。我怎样才能实现这一目标文我有2页以上的表

+4

为什么你认为加入3个表将是加入2如此不同?你有什么尝试? – 2013-02-21 09:27:48

+0

是为你工作的吗? – 2013-02-21 10:20:51

回答

0
var rowData = 
         from row1 in dsResults.Tables[0].AsEnumerable() 
         join row2 in dsResults.Tables[1].AsEnumerable() 
          on row1.Field<decimal>("RecordId") equals row2.Field<decimal>("RecordId2") 
         join row3 in dsResults.Tables[2].AsEnumerable() 
          on row1.Field<decimal>("RecordId") equals row3.Field<decimal>("RecordId3") 
         select row1.ItemArray.Concat(row2.ItemArray).Concat(row3.ItemArray).ToArray(); 
1

这样你可以尝试

var data= (from t1 in db.table1 
      join t2 in db.table2 on t1.ID equals t2.ID into t1t2 
      from x in t1t2.DefaultIfEmpty() 
      join t3 in db.table3 on t1.ID equals t3.ID into t1t3 
      from y in t1t3.DefaultIfEmpty() 
      select new { t1.id, x.id, y.id})