我要执行的任务是将一个表与另一个表连接。
Table 1: some data with Table1Id column.
Table 2: some data with Table2Id column.
Table 3: some data with Table3Id column.
现在,我想将Table1与Table2连接起来。
但是在这里,我只想在条件满足的情况下将Table1与Table3连接起来。
如果不满足条件,则不应仅包含表。
在LINQ中怎么可能是值得怀疑的。
示例:
var data = (from temp in Table1 join temp2 in Table2 on temp.Table1Id equals temp2.Table2Id
select temp).ToList();
在这里,我要在查询本身中检查条件,并基于条件将Table1和Table2联接到Table3。并且,此条件不是基于Table列,而是外部条件。
Step1:将table1与table2连接。
第2步 ; if(外部条件==“是,加入Table3”)
然后加入Table3。
任何建议或建议将不胜感激。
英语不是我的母语,所以请不要犯罪。
答案 0 :(得分:0)
方法1: 步骤1:将Table1和Table2连接起来,并将其保存在变量中,例如XYZ 步骤2:根据条件将XYZ和Table3连接起来并保存
var XYZ = (from temp in Table1 join temp2 in Table2 on temp.Table1Id equals temp2.Table2Id
select temp).ToList();
if condition ()
{
var data = (from temp in XYZ join temp3 in Table3 on temp.Table1Id equals temp2.Table2Id
select temp).ToList();
}
方法2: 在table3上使用左连接。在linq中,您可以为此使用GroupJoin