[英]Linq2Sql join by multiple columns (by OR operator)?
我可以翻译一下:
SELECT *
FROM vectors as v
INNER JOIN points as p
ON v.beginId = p.id OR v.endId = p.id
变成linq2sql语句? 基本上我想要这样:
var query = from v in dc.vectors
join p in dc.points on p.id in (v.beginId, v.endId)
...
select ...;
我知道,我可以通过Union构造来做到这一点,但是有比复制大多数查询更好的方法吗?
您不能在linq-to-sql中使用or
on
子句。 您需要做:
var result = from v in dc.vectors
from p in dc.points
where p.id == v.beginId || p.id == v.endId
select new { v, p };
等效于sql的:
SELECT *
FROM vectors as v,
points as p
WHERE v.beginId = p.id
OR v.endId = p.id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.