我有两个linq - sql查询,我想知道如何加入它们。
第一次查询
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;
First Query将返回:
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
问题是我怎么可能加入这两个表。其中第二个查询应该返回在第一个查询中找到的具有相同ID的所有记录加上包含“0000-0000-0000-0000-0000”第二个查询的id ..
结果应为:
FASF-1212-1212-1212-1212
AFAA-1414-1414-1414-1414
0000-0000-0000-0000-0000
答案 0 :(得分:0)
您可以使用union来加入这两个查询,例如将第二个查询分成两部分,条件如下:
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));
希望这会有所帮助..