2012-01-12 45 views
1

我有两个LINQ两个表 - SQL查询,并即时知道如何加入他们..结合使用LINQ

首先查询

var ab = from a in Items_worker.getCEAItems() 
       where a.ProjectCode == lbl_projectCode.Text 
       select new 
       { 
        a.ID 
       }; 

第二个查询

var j = from c in tblInc_worker.get(c => c.MarginID == MarginID && c.IncTypeID == "CAPEX") 
       orderby c.DateCreated 
       select c.ID; 

首先查询将退货:

fasf-1212-1212-1212-1212

AFAA-1414-1414-1414-1414

第二个查询将返回:

FASF-1212-1212-1212-1212

AFAA-1414-1414-1414-1414

0000-0000-0000-0000-0000

1111-1111-1111-1111-1111

的问题是我怎么能加入这两个表。其中第二个查询应与第一个查询加含“0000-0000-0000-0000-0000”第二查询ID发现了同样的ID返回所有的记录..

结果应该是:

FASF-1212-1212-1212-1212

AFAA-1414-1414-1414-1414

0000-0000-0000-0000-0000

回答

0

您可以使用工会加入两个查询,例如将你的第二个查询分成两部分,例如:

var ab = from a in Items_worker.getCEAItems() 
      where a.ProjectCode == lbl_projectCode.Text 
      select new 
      { 
       a.ID 
      }; 


var j = from c in tblInc_worker.get(c => c.MarginID == MarginID && c.IncTypeID == "CAPEX") 
      orderby c.DateCreated 
      select c.ID where c.ID.Equals("0000-0000-0000-0000-0000"); 

var j1 = from c in tblInc_worker.get(c => c.MarginID == MarginID && c.IncTypeID == "CAPEX") 
      orderby c.DateCreated 
      select c.ID where !(c.ID.Equals("0000-0000-0000-0000-0000")); 

var result = ab.Union(j.Union(j1)); 

希望这会有所帮助..