Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
join in LINQ中带ON子句的OR条件_Linq - Fatal编程技术网

join in LINQ中带ON子句的OR条件

join in LINQ中带ON子句的OR条件,linq,Linq,我想用LINQ编写一个查询,如下所示- from tab1 in database.table1.getall() join tab2 in database.table2.getall() on tab1.field1 equals tab2.field1 || tab1.field2 equals tab2.field1 select new { tab1.field1, tab1.field2, tab1.field3, } 请帮助我解决在连接两个表时如何编写或(| |

我想用LINQ编写一个查询,如下所示-

from tab1 in database.table1.getall()
join tab2 in database.table2.getall()
on tab1.field1 equals tab2.field1 || tab1.field2 equals tab2.field1
select new
{
   tab1.field1,
   tab1.field2,
   tab1.field3,
}
请帮助我解决在连接两个表时如何编写或(| |)
谢谢。

无法写入或加入LINQ的条件。可能的解决方法是使用WHERE子句进行交叉连接:

from tab1 in database.table1.getall()
from tab2 in database.table2.getall()
where tab1.field1 == tab2.field1 || tab1.field2 == tab2.field1
select new
{
   tab1.field1,
   tab1.field2,
   tab1.field3,
}

无法写入或连接LINQ的条件。可能的解决方法是使用WHERE子句进行交叉连接:

from tab1 in database.table1.getall()
from tab2 in database.table2.getall()
where tab1.field1 == tab2.field1 || tab1.field2 == tab2.field1
select new
{
   tab1.field1,
   tab1.field2,
   tab1.field3,
}

我可能听起来很傻,只是想知道这个交叉连接的结果是否和使用“或”(我想要的)连接的结果相同?@mailmehere是的,结果应该是same@mailmehere欢迎:)交叉连接查询应该比内部连接慢(取决于数据量),但这是唯一可以连接的方法,或者使用LINQi的条件可能听起来很愚蠢,我只是想知道这个交叉连接的结果会和我想要的“或”连接的结果一样吗?@mailmehere是的,结果应该是same@mailmehere欢迎:)交叉连接查询应该比内部连接慢(取决于数据量),但这是使用LINQ连接或条件的唯一方法